Спасибо
Контроллер:
Код: Выделить всё
[HttpPost]
public async Task CreateTransaction([FromBody] TransactionReqDto payload)
{
if (payload == null) return BadRequest();
var res = await _service.CreateTransactionAsync(payload);
switch (res.Status)
{
case true:
return Ok(res);
case false:
return UnprocessableEntity(res);
}
}
Код: Выделить всё
public async Task CreateTransaction_OnSuccess_ReturnStatusCode200()
{
//Arrange
var mockTransactionService = new Mock();
var transactionRequest = TransactionFixture.CreateTransaction();
var transactionResponse = new TransactionResDto { Status = true };
mockTransactionService.Setup(service => service.CreateTransactionAsync(transactionRequest))
.ReturnsAsync(transactionResponse);
var mockTransactionController = new TransactionController(mockTransactionService.Object);
//Act
var result = (OkObjectResult) await mockTransactionController.CreateTransaction(TransactionFixture.CreateTransaction());
//Assert
result.Should().BeOfType();
}
Сообщение:
System.NullReferenceException: ссылка на объект не установлена на экземпляр объекта.
Трассировка стека:
TransactionController.CreateTransaction(TransactionReqDto payload) line 35
TransactionControllerUnitTest.CreateTransaction_OnSuccess_ReturnStatusCode200() line 57
--- Конец трассировки стека из предыдущего местоположения ---
Я отладил код и понял, что переменная "res" возвращает значение null, поскольку метод createTransactionAsync не был вызван.
Любая помощь по этому поводу буду признателен.
Подробнее здесь: https://stackoverflow.com/questions/792 ... -unit-test