views:

258

answers:

2

How can i assert that a method on a mocked object was called exactly called n-times?

Here is the code snippet from a controller action, i like to test:

for (int i = 0; i <= newMatchCommand.NumberOfMatchesToCreate; i++) {
    serviceFacade.CreateNewMatch("tester", Side.White);
}

The "service facade" object is the (strict) mock and will be injected into the controller. The unit test should assert that the CreateNewMatch method within the action was called n-times. (e.g. 5)

+1  A: 

Try Expect.Call(method).Repeat.Times(n).

Brandon
+7  A: 

better yet:

mockObject.AssertWasCalled(x => x.SomeMethod(), opt => opt.Repeat.Times(n));
Matt Hinze