2009-02-25 1 views
2

Когда я использую Repeat.Any(), он не показывает никаких ошибок, хотя я не вызываю метод GetMood(), но если я не использую n, не вызывает GetMood, тогда он показывает Excpetion типа ExpectationViolationException.Can кто-нибудь скажет мне, что использовать repeat.any().Что такое использование Repeat.Any() в Expect.Call при использовании Rhino Mocks Test framework

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

Repeat.Any указывает, что GetMood() можно назвать 0 или более раз, и что он должен вернуть «PUNIT», если она называется.

Линия

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

означает, что GetMood должна вызываться только один раз. Это то же самое, что и Repat.Once.

Вы также можете использовать AtLeastOnce, Times, Twice и Never.

+0

thnx для ответа на самом деле, если у меня видят мои вопросы, в которых говорится, что если я использую repeat.any и не вызываю метод, он не может ожидать какого-либо ожидания, но если я не буду использовать repeat.any, это вызывает исключение. это repeat.any autmatically вызывает метод. – 2009-02-26 06:12:38

+0

Repeat.Any означает, что вам все равно, сколько раз ваш метод вызывается, поэтому он не будет генерировать исключение, даже если ваш метод вообще не вызван. –

 Смежные вопросы

  • Нет связанных вопросов^_^