2
使用ReturnsAsync時,我們只能讓它返回一個新的對象。是否有更好/更正確的方式來編寫下面的代碼?Moq使用ReturnsAsync並修改It.IsAny輸入參數
在這個例子中,我們有某種數據存儲,以及我們的實現需要在類型的事情的一個對象都有一個ID(我們要假裝我們的數據庫設置ID)屬性:
var repo = new Mock<IRepositoryOfThings>();
//Is there a better way to do this perhaps using ReturnsAsync??
repo.Setup(r => r.Add(It.IsAny<Thing>())).Returns(
(Thing x) =>
{
var tcs = new TaskCompletionSource<Thing>();
x.Id = Guid.NewGuid().ToString();
tcs.SetResult(x);
return tcs.Task;
});
謝謝!