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 string
ve bir SomeResponse
nesne.
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, Callback
yönteme başka bir tür eklemeniz ve lambda ifadesini uygun şekilde değiştirmeniz gerekir.