当我使用Repeat.Any()时,虽然我没有调用GetMood()方法,但它没有显示任何错误,但是如果我不使用n则不调用GetMood,那么它会显示ExpectationViolationException类型的Excpetion。有人可以告诉我repeat.any()的用途。
MockRepository mocks = new MockRepository();
IAnimal animal = mocks.DynamicMock<IAnimal>();
using (mocks.Record())
{
//Expect.Call(animal.GetMood()).Return("punit");
Expect.Call(animal.GetMood()).Return("Punit").Repeat.Any();
}
//animal.GetMood();
mocks.ReplayAll();
mocks.VerifyAll();
答案 0 :(得分:0)
Repeat.Any指定GetMood()可以被调用0次或更多次,并且如果被调用它应该返回“Punit”。
该行
Expect.Call(animal.GetMood()).Return("punit");
意味着必须只调用一次GetMood。这与Repat.Once相同。
您也可以使用AtLeastOnce,Times,Twice和Never。