C#异步任务-单元测试

时间:2019-03-11 17:23:36

标签: c# unit-testing async-await

我是C#单元测试的新手,必须测试该方法是否正常工作。

这是我到目前为止所拥有的:

  public async Task<IHttpActionResult> Post(API_FIRM_LINK aPI_FIRM_LINK)
    {
        db.API_FIRM_LINK.Add(aPI_FIRM_LINK);
        await db.SaveChangesAsync();

        return Created(aPI_FIRM_LINK);
    }

测试方法:不确定我是否走对了路 如果有人可以根据我的测试提供示例

     public async Task PostTest()

    {
        ////Arrange
        API_FIRM_LINKController controller = new API_FIRM_LINKController();

        API_FIRM_LINK aPI_FIRM_LINK = null;

        IHttpActionResult expectedResult = await controller.Post(aPI_FIRM_LINK);
        //act

        IHttpActionResult result = await controller.Post(API_FIRM_LINK, aPI_FIRM_LINK);


        ////Assert
        IComparer<IHttpActionResult> comparer = new IHttpActionResultComparer();
       // Assert.IsTrue(comparer.Equals(expectedResult, result));

        Assert.IsNotNull(result);
        Console.Write(result);

1 个答案:

答案 0 :(得分:2)

基本上不要async void

[TestMethod]
public async Task PostTest() {...}

如果您的测试框架不支持Task测试:请更改测试框架。