如何编写异步Web API的单元测试

Alm*_*lma 3 c# unit-testing asp.net-web-api

我在C#和Framework 6中有一个项目。我有一个Web API来调用方法。为异步WebAPI方法编写单元测试的最佳方法是什么?

这是我有的方法:

[HttpGet]
[Route("GetYears")]
public async Task<IEnumerable<Year>>  GetYears()
{
     IEnumerable<Year> newYears;    
     newYears = await creditApplicationsRepository.GetYearsAsync();
     return newYears;
}
Run Code Online (Sandbox Code Playgroud)

Joe*_*zen 5

您也可以使用await此功能。

[TestMethod]
public async Task GetYearsTest()
{
    //_sut is the System Under Test,  in this case is an instance of your controller
    var years = await _sut.GetYears();
    //Any Assert that you want
}
Run Code Online (Sandbox Code Playgroud)

存根方法的返回,请creditApplicationsRepository.GetYearsAsync();使用this Task.FromResult(mockReturn)