Gamlor'un yanıtı benim için çalıştı, ama John Carpenter'ın yorumunu genişleteceğimi düşündüm çünkü birden fazla parametre içeren bir çözüm arıyordum. Bu sayfaya rastlayan diğer kişilerin de benzer bir durumda olabileceğini düşündüm. Bu bilgiyi Adedi belgelerinde buldum .
Gamlor örneğini kullanacağım, ancak AsyncHandle yönteminin iki argüman aldığını varsayalım: a stringve bir SomeResponsenesne.
var mock = new Mock<Handler>();
string stringResult = string.Empty;
SomeResponse someResponse = null;
mock.Setup(h => h.AsyncHandle(It.IsAny<string>(), It.IsAny<SomeResponse>()))
.Callback<string, SomeResponse>((s, r) =>
{
stringResult = s;
someResponse = r;
});
// do your test
new Foo(mock.Object).Bar(22);
Assert.AreEqual("expected string", stringResult);
Assert.IsNotNull(someResponse);
Temel olarak It.IsAny<>(), uygun tipte başka bir tane eklemeniz, Callbackyönteme başka bir tür eklemeniz ve lambda ifadesini uygun şekilde değiştirmeniz gerekir.