Metodunuzda herhangi bir geri arama yok, bu nedenle kullanmak için bir neden yok .CallBack()
. .Returns()
Ve Görev'i kullanarak istediğiniz değerleri içeren bir Görevi döndürebilirsiniz . Örneğin:
MyType someValue=...;
mock.Setup(arg=>arg.DoSomethingAsync())
.Returns(Task.FromResult(someValue));
2014-06-22 Güncellemesi
Adedi 4.2 bu konuda yardımcı olacak iki yeni uzantı yöntemine sahiptir.
mock.Setup(arg=>arg.DoSomethingAsync())
.ReturnsAsync(someValue);
mock.Setup(arg=>arg.DoSomethingAsync())
.ThrowsAsync(new InvalidOperationException());
Güncelleme 2016-05-05
Seth Flowers'ın diğer cevapta belirttiği gibi ReturnsAsync
, sadece a döndüren yöntemler için kullanılabilir Task<T>
. Yalnızca Görev döndüren yöntemler için,
.Returns(Task.FromResult(default(object)))
kullanılabilir.
Bu yanıtta gösterildiği gibi , .NET 4.6'da bu basitleştirilmiştir .Returns(Task.CompletedTask);
, örneğin:
mock.Setup(arg=>arg.DoSomethingAsync())
.Returns(Task.CompletedTask);