c# - RhinoMocks - 未在 AssertWasCalled 中指定所有参数

标签 c# unit-testing rhino-mocks

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

在下面的示例中,我想忽略发送到 SomeOtherFunction() 的第二个参数的内容。 IE。我想检查是否使用第一个参数 123 调用了 SomeOtherFunction,我不关心第二个参数是什么。

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

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

最佳答案

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

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

关于c# - RhinoMocks - 未在 AssertWasCalled 中指定所有参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1946904/

相关文章:

c# - 为什么 RhinoMocks 在 VB 和 C# 中表现不同?

c# - 在 Silverlight 中打开文件夹对话框?

c# - 如何对 ASP.NET 5/MVC 6 session 进行单元测试?

c# - Mono 上的 Azure TimerManager 的类型初始值设定项引发异常

java - 带有mockito和多个返回值的模拟CSV阅读器

c# - 我是否应该复制使用模拟的单元测试并将其更改为真实的数据库以进行集成测试?

unit-testing - 你如何从 Rhino.Commons 模拟 UnitOfWork?

C# 编译器看到的是 Fluent 语法还是查询表达式?

unit-testing - 单元测试中方法名称前面的井号(#)的目的是什么?

c# - 断言没有方法被调用