Common이라는 속성을 가진 TxRx 클래스가 있습니다. 그런 다음 Common은 LastMod라는 속성을가집니다. LastMod가 무언가로 설정되었음을 보여주기 위해 RhinoMock 기대치를 쓰고 싶습니다.RhinoMock의 속성 체이닝
var txRx = MockRepository.GenerateMock<TxRx>();
var common = MockRepository.GenerateMock<Common>();
txRx.Expect(t => t.Common).Return(common);
txRx.Expect(t => t.Common.LastMod).SetPropertyAndIgnoreArgument();
그러나 나는 다음과 같은 예외가 얻을 : 그래서 시도
System.InvalidOperationException: Invalid call, the last call has been used or no call has been made (make sure that you are calling a virtual (C#)/Overridable (VB) method).
at Rhino.Mocks.LastCall.GetOptions[T]()
at Rhino.Mocks.RhinoMocksExtensions.Expect[T,R](T mock, Function`2 action)
at ...
내가이 공통 가상 할 필요가 의미 추정하지만,이 LinqToSql 생성 된 클래스의 속성이기 때문에 내가 할 수 없습니다를 가상으로 만들어야합니다 (실제로는 옵션이 아닌 자동 코드를 해킹하는 것 외에는).
이 문제가 발생합니까? 당신은
txRx.Expect(() => common.LastMod).SetPropertyAndIgnoreArgument();
그러나 일반 건물 자체와 두 번째 기대를 교체 할 필요가
이것은 컴파일되지 않습니다. 컴파일하려면 람다식이 필요합니다. 공통점이 가상 일 필요가 있다는 데 동의합니다. 즉, 피하려고 한 것입니다. 오 잘. –
지금 수정했습니다. –