在使用Rhino Mocks Test框架时,在Expect.Call中使用Repeat.Any()是什么?

时间:2009-02-25 11:34:38

标签: rhino-mocks

当我使用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();

1 个答案:

答案 0 :(得分:0)

Repeat.Any指定GetMood()可以被调用0次或更多次,并且如果被调用它应该返回“Punit”。

该行

Expect.Call(animal.GetMood()).Return("punit");

意味着必须只调用一次GetMood。这与Repat.Once相同。

您也可以使用AtLeastOnce,Times,Twice和Never。