我正在尝试使用 XCTest 框架测试我的应用程序。
如果某些逻辑条件成立(使用断言),我希望我的单个测试用例失败。
我不希望测试用例中的其余代码运行,因为这可能会导致问题(例如,访问空指针)
我还希望测试用例的其余部分正常运行,并且仅将失败的测试标记为失败。
我注意到 XCTestCase 有一个名为 continueAfterFailure 的属性。
但是,将其设置为 YES 会导致失败的测试在断言后继续执行行,并将其设置为 NO 会导致其余测试根本不运行。
这个问题有解决办法吗?
帕斯卡的回答给了我正确实现这一目标的想法。现在,当断言失败时,XCTool 的行为类似于 OCUnit:测试用例的执行立即中止,调用tearDown 并运行下一个测试用例。
只需重写该方法即可invokeTest
在您的基类(从 XCTestCase 类继承的基类)中:
- (void)invokeTest
{
self.continueAfterFailure = NO;
@try
{
[super invokeTest];
}
@finally
{
self.continueAfterFailure = YES;
}
}
就是这样!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)