如何检查在模拟对象上使用特定参数调用的方法?

本文关键字:参数 调用 方法 何检查 检查 对象 模拟 | 更新日期: 2023-09-27 18:10:55

你能帮助实现我在下面注释块中提到的完成示例单元测试的目标吗?

思想是如何检查一个模拟对象,如果它的一个方法被一个类型实例调用,它有一个特定的属性被设置为预期的值/

private IMyObject stub = MockRepository.GenerateMock<IMyObject>();
[TestMethod]
public void MakeMyJob_RecievesValidData_CallsRenderWithCorrectParameter()
{
    SomeUtility.MakeMyJob(5,10,stub);
    stub.AsswertWasCalled(s=>s.Render(Arg<IViewModel>.Is. //What next?
                                            // In order to check if Render is called
                                            // with a IViewModel instance 
                                            // whoose Person.Name property is "Peter"
}

如何检查在模拟对象上使用特定参数调用的方法?

我认为您正在寻找Rhino mock中的参数约束。我曾经尝试过一些框架-链接。我想你在找

Arg<IViewModel>.Matches (vm => vm.Person.Name == "Peter" )

看参考:

 stub.AsswertWasCalled(s=>s.Render(Arg<IViewModel>.Property("Person", "John")))