C# Rhino模拟IgnoreArguments()并测试是否正确调用了lambda
以下是我所拥有的:C# Rhino模拟IgnoreArguments()并测试是否正确调用了lambda,c#,unit-testing,rhino-mocks,C#,Unit Testing,Rhino Mocks,以下是我所拥有的: public interface IDataCenterMsmqWriter { void UpdateData(Action<DataCenterWcfProxy> action); } 如何使用Rhino Mocks进行测试,将_writer设置为Mock,并希望测试UpdateData方法中是否调用了正确的操作 我试过这个: // _writer is setup as a mock var data = new SomeDa
public interface IDataCenterMsmqWriter
{
void UpdateData(Action<DataCenterWcfProxy> action);
}
如何使用Rhino Mocks进行测试,将_writer设置为Mock,并希望测试UpdateData方法中是否调用了正确的操作
我试过这个:
// _writer is setup as a mock
var data = new SomeData();
_wcfServiceSUT.SendData(data);
_writer.AssertWasCalled(d => d.UpdateData(x => x.SendVarData(data));
不起作用
我可以补充:
,p=>p.IgnoreArguments(),在调用AssertWas中的UpdateData之后,但这并没有给出我想要的,以确保使用数据变量调用SendVarData
我已经看过了:
但我的行为不像他的例子中的mockDialogService那样被嘲笑
是否有方法测试是否使用正确的输入参数等正确调用了操作或函数?更新的数据应该是虚拟的,否则rhino mock无法覆盖方法验证使用正确参数调用操作或函数的最佳方法是使用。下面是一个例子 .
此示例显示了如何利用预期与实际的输出,而不是是否满足预期。是
DataCenterWcfProxy.SendVarData()
一种虚拟方法,或者您可以放置一个接口吗?不,它只是接口上的一个公共方法,将通过WCF进行序列化。它是一个添加接口IDataCenterWcfProxy
的选项,该接口由DataCenterWcfProxy
实现,并由IDataCenterMsmqWriter
的更新
方法使用?
// _writer is setup as a mock
var data = new SomeData();
_wcfServiceSUT.SendData(data);
_writer.AssertWasCalled(d => d.UpdateData(x => x.SendVarData(data));