我有一個叫做Common的屬性的TxRx類。常見的有一個名爲LastMod的屬性。我想寫一個RhinoMock的期望來表明LastMod已經設置了一些東西。所以,我想:RhinoMocks中的產業鏈
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產生類的屬性我不能使其成爲虛擬的(除了黑客的自動代碼,這不是一個真正的選擇)。
有沒有辦法解決這個問題?
這不會編譯,它需要Lambda表達式進行編譯。我同意,看起來Common需要是虛擬的,這正是我想要避免的。好吧。 –
現在已經修復了這個問題。 –