C# 资产在犀牛模仿中被调用
我有一个正在测试的对象,它对数据访问对象进行了相当复杂的调用。看起来像C# 资产在犀牛模仿中被调用,c#,unit-testing,rhino-mocks,C#,Unit Testing,Rhino Mocks,我有一个正在测试的对象,它对数据访问对象进行了相当复杂的调用。看起来像 object.DoSomething(somestring、someObject、someOtherObject、someOtherObject) 在我的测试结构中,我有一个模拟版本的object,我想测试Dosomething是用somestring==“value1”和someObject.porpertyA==“value2”调用的 我不能使用简单的AssertWasCalled()重载,因为我没有;I don’我不知
object.DoSomething(somestring、someObject、someOtherObject、someOtherObject)
在我的测试结构中,我有一个模拟版本的object,我想测试Dosomething是用somestring==“value1”和someObject.porpertyA==“value2”调用的
我不能使用简单的AssertWasCalled()重载,因为我没有;I don’我不知道(或关心)其他物体。我注意到另一个重载对设置约束采取了操作,但我从未见过它被使用。请查看
我怀疑你想要:
Expect.Call(object.DoSomething(null, null, null, null)
.IgnoreArguments() // Ignore those nulls
.Constraints(Is.Equal("value1"),
Property.Value("PropertyA", "value2"),
Is.Anything(),
Is.Anything())
.Return(whateverItShouldReturn);
小菜一碟:
yourstub.AssertWasCalled(
x => x.DoSomething(
Arg<string>.Is.Equal("value1"),
Arg<someObjectType>.Is.Equal(value2),
Arg<someOtherObjectType>.Is.Anything, <======== NOTE THIS!
Arg<someOtherOtherObjectType>.Is.Equal(value3)
)
);
调用yourstub.assertwas(
x=>x.DoSomething(
参数等于(“值1”),
参数等于(值2),
我发现唯一有用的另一件事是使用Arg.Matches(y=>y.property==where);检查参数对象上的值。