我的测试用例包含10个以上的断言。假设在第三个断言中存在问题(即。)工具无法识别我用于第三个断言的Ui或对象。现在整个测试用例都失败了“无法找到控件”,相同测试用例的其余部分未完成。
完全运行测试用例是否可行(继续执行所有其他断言, 尽管第三个断言有误,但假设无法识别的控制仅用于第三个断言。)
问候 AMSA
答案 0 :(得分:2)
唯一的方法是凌乱。编码的UI与断言一起使用,其目的在于解释为" [something]在这里应该为真,如果没有,则立即停止测试&#34 ;
有各种方法可以避免"立即停止"部分,但大多数归结为风格的代码:
try {
... an assertion ...
}
catch (...)
{
... remember and/or report the detail of the failed assertion ...
}
try {
... another assertion ...
}
catch (...)
{
... remember and/or report the detail of this failed assertion ...
}
if ( any assertion above was caught OR anything was remembered )
{
// Something failed.
report the remembered items
Assert.Fail(... some message...);
}
try...catch...{}
可以根据需要重复。除非您只捕获最常见的例外情况,否则catch
条款可能难以编写。执行报告和记忆的代码可能会抛出异常。在try...
语句之间可能存在可能失败的非断言方法的调用,因此这些方法也需要包含在try...
语句中。整个测试变得非常麻烦,并且存在检测和记住故障但由于后来未处理的异常而未报告的风险。