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

问题描述

我有一个异步方法返回一个Task

public virtual async Task IReturnATask(Guid settingId)

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

_service.Setup(m => m.IReturnATask(guid));

起订量抱怨:

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

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

标签: c#unit-testingasync-awaitmoq

解决方案


在进行测试时,Task仍然需要A以允许流程完成。await

所以需要设置返回一个Task.

Task.CompletedTask可用于此

//...

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

//...

推荐阅读