呼び出された場合は、ここで私が持っているものです:テスト中のRhinoのモックIgnoreArguments()とテストラムダが正しく
public interface IDataCenterMsmqWriter
{
void UpdateData(Action<DataCenterWcfProxy> action);
}
システム:
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
}
私のように_writer設定RhinoのモックをテストするにはどうすればよいですMockを使用し、正しいActionがUpdateDataメソッドで呼び出されたことをテストしたい。
私はこれを試してみた:
// _writer is setup as a mock
var data = new SomeData();
_wcfServiceSUT.SendData(data);
_writer.AssertWasCalled(d => d.UpdateData(x => x.SendVarData(data));
は動作しません。
私が追加することができます。
、P => AssertWasCalled内部にupdateData後p.IgnoreArguments()が、それは確かSendVarDataはデータ変数と呼ばれていた作るために、私が欲しいものを私に与えるものではありません。
私はこれを見てきました:
How to assert that an action was called
が、私の行動は、彼の例ではmockDialogServiceのように嘲笑されていません。
正しい入力パラメータなどでActionまたはFuncが正しく呼び出されたかどうかをテストする方法はありますか?
'DataCenterWcfProxy.SendVarData()'は仮想メソッドですか、あるいはインターフェースを配置することはできますか? – Jeroen
いいえ、WCFでシリアル化するインターフェイスのパブリックメソッドです。 –
'DataCenterWcfProxy'で実装され、' IDataCenterMsmqWriter'の 'Update'メソッドで使用されるインタフェース' IDataCenterWcfProxy'を追加するオプションですか? – Jeroen