2009-12-22 54 views
34

我正在使用RhinoMocks。現在我想斷言某個函數被調用,但我只關心其中一個參數。我可以做一個AssertWasCalled哪裏我只指定一個參數?RhinoMocks - 未指定AssertWasCalled中的所有參數

在以下示例中,我希望忽略發送給SomeOtherFunction()的第二個參數的內容。即我想檢查SomeOtherFunction與第一個參數123調用,我不在乎第二個參數是什麼。

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

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

回答

61

您可以指定第二個參數爲Arg<T>.Is.Anything,然後實際值被忽略。

但是請注意,使用這個你需要使用Arg的所有參數。這意味着你需要使用第一個參數:Arg<int>.Is.Equal(123)