开发者

How can I set up expectations for event registration on a multimock

I am using RhinoMocks 3.6 and would like to use the multimock feature to implement both a class and a 开发者_开发百科interface.

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();
}

The LastCall is working though. I get this message :

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).

What am I doing wrong here??


Have you actually checked that the Project class has methods you can override as the error message indicates? I'll assume you have. :-)

I'd suggest you switch to using the AAA syntax instead of record/replay as shown here:

I assume you're wanting to know if the class under test reacts the right way when the CollectionChanged event is fired? If that's the case, you can do it something like this:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜