テスト中のメソッドで呼び出されているプライベート メソッドがあります。このプライベート メソッドに正しいパラメータが渡されていることを確認したいと思います。私が望むものをテストする次の設定を Moq に書きましたが、実際にはアレンジ、アクト、アサートのパターンに従うことはできません。
アサートによって、他のすべてのアサートと一緒に表示される同様のテストを実行できる方法はありますか? 現時点では、以下のコードはアレンジ内にあります。
myClass.Setup(
x =>
x.myMethod(
It.IsAny<Person>>(),
It.IsAny<string>(),
It.IsAny<Person>(),
It.IsAny<ICollection<string>>(),
It.IsAny<ICollection<string>>(),
It.IsAny<bool>())).Callback
<Person, string, Person, Person, ICollection<string>, bool>(
(a, b, c, d, e, f) =>
{
Assert.AreEqual("NameA", a.Name);
Assert.AreEqual("StringB", b);
Assert.AreEqual("NameC", c.Name);
Assert.AreEqual(2, d);
var dList = d.ToList().OrderBy(x => x.Name);
Assert.AreEqual("PersonA", dList[0].Name)
Assert.AreEqual("PersonB", dList[1].Name);
});
メソッドが特定の入力で呼び出されたかどうかを確認するために検証を実行できることは承知していますが、ICollection パラメーターを一致させる方法については知りません。