如何模拟函数返回void任务

Ste*_*fen 6 c# asynchronous

我有一个功能

public Task DoSomethingAsync();
Run Code Online (Sandbox Code Playgroud)

我想为测试目的而嘲笑.

实现这种方法的返回值的正确方法是什么.如果它会返回Task<int>或什么,我会用Task.FromResult<int>(5);

我可以

public async void DoSomethingAsync()
{
//implementation
}
Run Code Online (Sandbox Code Playgroud)

然而,这缺乏await运算符,并且(至少与Resharper)将加下划线.

在这里返回任务的正确方法是什么?

Kru*_*lur 11

你需要做的就是返回一个Task和(惊喜!:-))Task<T>派生而来Task,它是一个 Task.请参阅此参考.

所以只需返回一个bool(或其他任何东西):

return Task.FromResult(true);

您还可以使用以下命令返回完成 Task:

return Task.CompletedTask;

(注意:以上仅适用于.NET 4.6)