我使用Moq。 我已经模拟了一个具有以下方法的类:
public async Task DoSomething()
{
// do something...
}
我将它设置为以下方式:
SomeMock.Setup(x => x.DoSomething())
.Callback(() => ... ))
.Returns(Task.FromResult(default(int)));
我不喜欢最后一行代码:.Returns(Task.FromResult(default(int)))
。有没有更优雅的设置异步返回的方法?我知道有一个 ReturnsAsync()
方法,但它需要一个参数。我的方法只返回一个 Task
,所以我没有 ReturnsAsync()
的参数。
new Task(() => {})
会导致死锁,因为该任务从未启动,也永远不会启动。但是Task.Run(() => {})
可以正常工作。话虽如此,当使用 .NET 4.5 时,我仍然更喜欢使用Task.FromResult
。 - dcastroTask.FromResult<object>(null)
一起使用。 - Aaron Newton