如何为在C#中使用await的方法编写单元测试用例

时间:2017-08-10 04:45:59

标签: c# async-await

我正在尝试为await方法编写单元测试用例

    ExamStatus FakeExamStatus = new ExamStatus();
    ExamDetails FaKeExamDetails = new ExamDetails();

    FakeExamDetails .base64String = "asjdhajshdhasdjhasd";
    FakeExamDetails .eMailID = EmailID;
    FakeExamDetails .fileExtension = FileExtension;
    FakeExamDetails .fileName = FileName;

    ExamResult result = await FakeExamStatus.BlobFileUploadPost(ExamDetails);    

    Assert.AreEqual(result.ReturnMessage, "success", "Not Equal");

当我尝试传递并获取某些值时,它会在此行停止执行?是否需要在等待之后添加一些等待?

我正在使用Specflow和VisualStudio UnitTesting而不是正常的单元测试框架!

2 个答案:

答案 0 :(得分:2)

如果您声明了测试方法async void(正如您在评论中暗示的那样),则您希望改为async Task。框架无法等待async void方法;您唯一想要使用async void的时间是您没有其他选择(例如某些事件处理程序)。

答案 1 :(得分:-1)

Async Unit Tests

例如:

    [TestMethod]
    public async Task BlobFileUploadAsync()
    {
        bool result = await ExamStatus.BlobFileUploadPost(ExamDetails);
        Assert.AreEqual(true, result);
    }