Как проверить асинхронный метод задачи - PullRequest
0 голосов
/ 17 мая 2019

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

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 Ответ

2 голосов
/ 17 мая 2019

Я получаю ошибку, которая не может присвоить 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...