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

时间:2011-10-10 12:00:25

标签: c# .net unit-testing mocking rhino-mocks

您能帮助我实现我在下面评论栏中提到的目标,以完成样本单元测试吗?

想法是如何检查模拟对象,如果使用具有特定属性的类型实例调用其方法之一将其设置为期望值/

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"

}

2 个答案:

答案 0 :(得分:1)

我认为你正在寻找Rhino Mocks中的参数约束。我前段时间曾参与过一些框架 - link。我想你正在寻找

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

答案 1 :(得分:0)

查看reference

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