私が間違っていることや、moqやNUnitの問題であればトレーニングをしようとしています。私は石鹸のエンドポイントを呼び出すと、私のサービス参照は、同期メソッドと非同期メソッドの両方を生成しています。Moq非同期コールバックが複数のパラメータで失敗する
public async Task DoThisAsync(idnameobject myobj, int id)
{
await ws.DoSomethingAsync(myobj, id);
}
私はコールバックを返すために、私のMOQを設定していますので、私は私がして、Webサービスと呼ばれているパラメータをinteregateすることができます:私は作っていますコールは、のようになります。スタックトレース内のすべての情報が含まれていない私のメソッドを呼び出すときに私はnull参照の例外を取得し、この時点で
var callback = new idnameobject();
wsMock
.SetUp(w => w.DoSomethingAsync(It.IsAny<idnameobject>(), It.IsAny<int>())
.Callback<idnameobject, int>((obj, id) => callback = obj);
await myservice.DoThisAsync(myobj, id);
Assert.That(callback.Id, Is.EqualTo(myobj.Id));
:私のテストのようなものが見えます。私が持っているのはException thrown: 'System.AggregateException' in mscorlib.dll
です。
奇妙なビットは、私が同期メソッドからコールバックを設定し、それを呼び出すためにメソッドを変更すると失敗しないということです。
1つのパラメータしか持たない非同期メソッドを呼び出すと、失敗しません。
私のテストのために私のメソッドを変更したくないと思っている人は、私に知らせてください。しかし、Webサービスを正しく呼び出すためのテストが理想的です。
大きな説明と私の問題を修正しました。私はそれをあなたの答えとすることができれば幸いです。 – mikesigs
申し訳ありませんが、これは私の質問に答えました。 – Tom