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));