如何测试异步Task方法 我的方法定义:
class TestClient{
public async Task SendTest(TestDto testDto, string correlationId)
{
await PostAsync(Routes.Test, body: testDto, correlationId:
correlationId).ConfigureAwait(false);
}
}
实现路线的控制器:
[HttpPost]
[ProducesResponseType(201)]
[ProducesResponseType(400)]
[Route(Routes.Test)]
public async Task<IActionResult> SendEmailNotification([FromBody] TestDto
testDto)
{
await _testService.TestNotify(testDto);
return StatusCode(201);
}
当我在测试方法中使用以下内容时:
var result = await _mockTestClient.Object.SendTest(testDto, null);
我收到了无法将void分配给隐式类型变量的错误
答案 0 :(得分:2)
我收到了无法将void分配给隐式类型变量的错误
SendTest
返回的类型为Task
。因此,表达式_mockTestClient.Object.SendTest(testDto, null)
的类型也是Task
。
await
解开Task
/ Task<T>
。对于Task
,没有返回类型。因此,表达式await _mockTestClient.Object.SendTest(testDto, null)
的类型为void
,因此无法将void
分配给变量-在这种情况下为result
。
如果您只想检查异常,则不要尝试分配给局部变量:
await _mockTestClient.Object.SendTest(testDto, null);