2011-08-11 61 views
0

我正在使用RhinoMocks 3.6,並且想要使用multimock功能來實現類和接口。如何設置多模塊上的事件註冊期望

var mocks = new MockRepository(); 
var project = mocks.StrictMultiMock(
         typeof(Project), 
         typeof(INotifyCollectionChanged)); 
using (mocks.Record()) 
{ 
    ((INotifyCollectionChanged)project).CollectionChanged += null; 
    LastCall.Constraints(Is.NotNull()).Repeat.Any(); 
} 

LastCall雖然工作。我得到這個消息:

System.InvalidOperationException:無效的調用,最後調用已被使用或沒有呼叫的情況下(請確保您調用虛擬(C#)/可重寫(VB)方法)。

我在做什麼錯在這裏?

+0

你能分享一些被測方法嗎? –

回答

0

您是否真的檢查過Project類有錯誤消息指示的可以覆蓋的方法?我會假設你有。 :-)

我建議如下所示切換到使用AAA語法,而不是記錄/回放:

我假設你想知道如果被測類反應的正確方法當CollectionChanged事件被觸發?如果是這樣的話,你可以這樣做:

var project = MockRepository.GenerateMock<Project, INotifyPropertyChanged>(); 
project.Expect(p => p.SomeMethod()) 
    .Repeat.Any() 
    .Raise(p => ((INotifyCollectionChanged)p).CollectionChanged += null,p,new NotifyCollectionChangedEventArgs());