【问题标题】:RhinoMocks - Not specifying all parameters in AssertWasCalledRhinoMocks - 没有在 AssertWasCalled 中指定所有参数
【发布时间】:2010-12-29 03:33:38
【问题描述】:

我正在使用 RhinoMocks。现在我想断言调用了某个函数,但我只关心其中一个参数。我可以在只指定一个参数的情况下执行AssertWasCalled 吗?

在以下示例中,我希望忽略发送到 SomeOtherFunction() 的第二个参数的内容。 IE。我想检查 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));  
}

【问题讨论】:

    标签: c# unit-testing rhino-mocks


    【解决方案1】:

    您可以将第二个参数指定为Arg&lt;T&gt;.Is.Anything,然后忽略实际值。

    但是请注意,使用它需要对所有参数使用 Arg。这意味着您需要在第一个参数上使用:Arg&lt;int&gt;.Is.Equal(123)

    【讨论】:

    • 你到底在哪里使用Arg&lt;T&gt;?像这样? factory.SomeOtherFunction(Arg&lt;int&gt;.Is.Equal(123), Arg&lt;T&gt;.Is.Anything)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-14
    • 2019-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多