【发布时间】:2013-01-18 13:09:04
【问题描述】:
当标有“异步”的测试用例失败时,就会出现问题。在这种情况下,应用程序只是崩溃,出现未处理的 TargetInvocationFail 异常。据我了解,测试应用程序应该处理这些异常,因为如果出现异常,它应该将相应的情况标记为失败。这正是正常测试用例所发生的情况(其中没有 async / await 内容)。
我也为此创建了一个问题报告,请参阅http://phone.codeplex.com/workitem/10751。如果您有同样的问题,请点赞该问题。如果您碰巧知道一些解决方法,请在此处告诉我。
编辑:正如 Stephen Cleary 在评论中提到的那样,问题是由于我的测试用例过程是异步无效的,而不是异步任务引起的。那么我将这个问题重新表述如下:为什么改变测试用例的返回类型会改变异常处理的行为?
【问题讨论】:
-
您没有在此处或在您的问题报告中发布复制代码。如果我猜测一下,我会说你的单元测试方法是
async void,而它应该是async Task。 -
你没有问任何问题。你有吗?
-
@StephenCleary 你是绝对正确的,使东西 async Task 而不是 async void 解决了这个问题。我可以谦虚地请你回答为什么会这样吗?我将使用此信息编辑问题。
标签: c# unit-testing windows-phone-8 async-await