我必须更改什么才能使此异步单元正确运行?
目前我得到'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);
}
答案 0 :(得分:14)
您应该使用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
包装,让您更轻松地确定单元测试失败的原因。