创建异步单元测试抛出聚合异常
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
包装器,让您更轻松地确定单元测试失败的原因。
我必须更改什么才能使这个异步单元 运行 正确?
此刻我得到一个 '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
包装器,让您更轻松地确定单元测试失败的原因。