У меня есть контроллер в проекте веб-API. NET Core v3
public class MyController : ControllerBase
{
private readonly IService service;
public MyController (IService service)
{
this.service= service;
}
HttpGet("{id}")]
public async Task<ActionResult<MyModel>> Get(int id)
{
var record= await service.GetAsync(id);
if (record== null)
return NotFound();
return Ok(Convert to model before returning);
}
}
Я пытаюсь написать модульный тест для метода Get
с помощью NUnit.
Это то, что у меня есть, и оно работает:
[Test]
public void Get_WhenCalled_ReturnNotFound()
{
service = new Mock<IService>();
controller = new MyController(service.Object);
service.Setup(service => service.GetAsync(1)).ReturnsAsync((MyType)null);
var result = controller.Get(1);
Assert.That(result.Result.Result, Is.TypeOf<NotFoundResult>());
}
Но в assert я должен позвонить result.Result.Result
. Это выглядит немного странно. Могу ли я обойти это?
Я также пробовал следующую строку, но она та же:
service.Setup(service => service.GetAsync(1)).Returns(Task.FromResult((MyType)null));