Как проверить асинхронный метод задачи

Как проверить асинхронный метод задачи Определение моего метода:

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 неявной переменной типа

Всего 1 ответ


Я получаю ошибку, которая не может присвоить 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);

Есть идеи?

10000