创建异步单元测试抛出聚合异常

create async unit test throws aggregate exception

我必须更改什么才能使这个异步单元 运行 正确?

此刻我得到一个 'System.AggregateException'

我读到我不应该用 asnyc 标记测试方法并在 SUT 前加上 'await' 前缀,因为这样断言将失败,因为结果尚未返回。

[TestMethod]
public void CreateAsyncViewModel()
{
    // other stuff
    var result =  vmMapper.CreateViewModel(mock1,mock2);
    result.Wait();

    var viewModel = result.Result;

    Assert.AreEqual(viewModel.Data.Count(), 1);

}

您应该使用 asynchronous unit test methods,正如我在 MSDN 文章中所描述的那样:

[TestMethod]
public async Task CreateAsyncViewModel()
{
  // other stuff
  var result =  vmMapper.CreateViewModel(mock1, mock2);

  var viewModel = await result;

  Assert.AreEqual(viewModel.Data.Count(), 1);
}

await 将避免使用 AggregateException 包装器,让您更轻松地确定单元测试失败的原因。