我在使用 WinRT C# 构建的 Windows Store 应用程序中使用xUnit进行单元测试。被测代码调用了等待的异步方法,问题是有些有时会失败,有时会成功。我的猜测是,等待的代码的一些延续是在与捕获的不同的同步上下文中执行的,然后Task
调用链中的某个地方没有等待。但是我找不到任何这样的地方。如何找到错误的原因?
问问题
913 次
1 回答
2
确保您的单元测试async Task
不是async void
. xUnit 尚不支持async void
单元测试。
async void
如果您在单元测试中遇到异常,则存在竞争条件,它可能会错误地成功(链接到我的博客文章,其中包含更多详细信息;它讨论了 MSTest,但 xUnit 也存在相同的情况)。
于 2012-11-04T14:46:32.310 回答