web-dev-qa-db-ja.com

RhinoMocks-AssertWasCalledのすべてのパラメーターを指定していません

RhinoMocksを使用しています。ここで、いくつかの関数が呼び出されたことを表明したいのですが、私は引数の1つだけを気にします。引数を1つだけ指定するAssertWasCalledを実行できますか?

次の例では、SomeOtherFunction()の2番目の引数に送信されたものを無視したいと思います。つまりSomeOtherFunctionが最初のパラメーター123で呼び出されたことを確認したいのですが、2番目のパラメーターが何であるかは関係ありません。

[Test]
public void SomeTest()
{
    var myMock = MockRepository.GenerateMock<ISomeInterface>();    
    var myObj = new MyClass(myMock); 
    myObj.foo()

    myMock.AssertWasCalled(factory => factory.SomeOtherFunction(123, null));  
}
36
stiank81

2番目の引数を_Arg<T>.Is.Anything_として指定すると、実際の値は無視されます。

ただし、これを使用するには、すべての引数にArgを使用する必要があることに注意してください。つまり、最初の引数Arg<int>.Is.Equal(123)で使用する必要があります。

70
Matt Warren