2016-11-10 4 views
1

Учитывая интерфейс следующим образом:Есть ли более простой способ предусмотреть метод, который нельзя назвать в RhinoMocks?

interface ISomething 
{ 
    void Method(int arg1, string arg2, double arg3, OtherType arg4); 
} 

Используется в насмешливый с RhinoMocks

ISomething something = MockRepository.GenerateMock<ISomething>(); 

Единственный способ я знаю, чтобы проверить это никогда не вызывается в моем тесте выглядит следующим образом:

something.Expect(_ => _.Method(
Arg<int>.Is.Anything, 
Arg<string>.Is.Anything, 
Arg<double>.Is.Anything, 
Arg<OtherType>.Is.Anything) 
).Repeat.Never(); 

Это довольно уродливо. Есть ли более короткий способ сделать это для специального случая, когда метод не вызван вообще?

+2

Вы можете окурок его бросить исключение. –

+0

'someting.AssertWasNotCalled (s => s.Method (...))'? – Lee

+0

Нельзя уклоняться от использования 'Arg'. Если слишком много аргументов является проблемой, тогда это означает, что проблема связана с дизайном метода (запах кода). Проблемы с тестированием, как правило, выявляют проблемы с дизайном кода. Чистый код приводит к чистым модульным испытаниям – Nkosi

ответ

0

Использование IgnoreArguments() быстрее, чем с указанием каждого аргумента в отдельности:

something.Expect(_ => _.Method(0, "", 0, null)).IgnoreArguments().Repeat.Never(); 
Смежные вопросы