如何在 Moq 4.13.1 中设置仅以严格模式返回任务的异步方法?

sch*_*gel 2 c# unit-testing moq async-await

我有一个异步方法返回Task

public virtual async Task IReturnATask(Guid settingId)
Run Code Online (Sandbox Code Playgroud)

当我尝试在单元测试中像这样设置它时,

_service.Setup(m => m.IReturnATask(guid));
Run Code Online (Sandbox Code Playgroud)

起订量抱怨:

“调用需要返回一个值,因此必须有一个提供该值的相应设置。”

我应该如何定义这个异步方法的设置?

Nko*_*osi 5

在进行测试时,Task仍然需要A来让流程完成。await

因此需要设置为返回Task.

Task.CompletedTask可以用于此

//...

_service
    .Setup(m => m.IReturnATask(It.Any<Guid>()))
    .Returns(Task.CompletedTask);

//...
Run Code Online (Sandbox Code Playgroud)