Mar*_*k W 5 c# unit-testing rhino-mocks
这就是我所拥有的:
public interface IDataCenterMsmqWriter
{
void UpdateData(Action<DataCenterWcfProxy> action);
}
Run Code Online (Sandbox Code Playgroud)
被测系统:
public class WcfService : IWcfService
{
private readonly IDataCenterMsmqWriter _writer;
public WcfService(IDataCenterMsmqWriter writer)
{
_writer = writer;
}
#region IWcfService members
public void SendData(SomeData data)
{
_writer.UpdateData(d => d.SendVarData(data));
}
// other members of IWcfService elided
#endregion
}
Run Code Online (Sandbox Code Playgroud)
如何使用Rhino Mocks进行测试,将_writer设置为Mock,并希望测试在UpdateData方法中调用了正确的Action.
我试过这个:
// _writer is setup as a mock
var data = new SomeData();
_wcfServiceSUT.SendData(data);
_writer.AssertWasCalled(d => d.UpdateData(x => x.SendVarData(data));
Run Code Online (Sandbox Code Playgroud)
不起作用.
我可以添加:
,在AssertWasCalled中的UpdateData之后的p => p.I.IgnoreArguments(),但是这并没有给出我想要的东西,以确保使用数据变量调用SendVarData.
我看过这个:
但我的动作并没有像他的例子中的mockDialogService那样被嘲笑.
有没有办法测试是否使用正确的输入参数正确调用了Action或Func等?