我试图使用XCTest框架测试我的应用程序.
如果某些逻辑条件成立(使用断言),我希望我的单个测试用例失败.
我不想让测试用例中的其余代码运行,因为这可能会导致问题(例如访问空指针)
我还希望测试用例的其余部分正常运行,只是失败的测试被标记为失败.
我注意到XCTestCase有一个名为continueAfterFailure的属性.
但是,将其设置为YES会导致失败的测试在断言之后继续执行,并将其设置为NO导致其余的测试根本不运行.
有没有解决这个问题?
谢谢,
约阿夫
帕斯卡的答案给了我这个想法,以达到这个正确.当断言失败时,XCTool的行为就像OCUnit:测试用例的执行立即被中止,tearDown被
调用,并且运行下一个测试用例.
简单地覆盖你的基类(从XCTestCase类继承的)中的invokeTest方法:
- (void)invokeTest
{
self.continueAfterFailure = NO;
@try
{
[super invokeTest];
}
@finally
{
self.continueAfterFailure = YES;
}
}
而已!
原文链接:https://www.f2er.com/iOS/329199.html