2016-11-10 4 views
1

次のようにこれを確認するために私が知っている唯一の方法は、私のテストで呼び出されることはありませんRhinoMocksRhinoMockで呼び出されるべきではないメソッドを指定する方法がありますか?次のようにインターフェースを考える

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

とからかって使用

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

は次のとおりです。

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(); 
関連する問題