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);