我试图使用XCTest框架测试我的应用程序.
如果某些逻辑条件成立(使用断言),我希望我的单个测试用例失败.
我不想让测试用例中的其余代码运行,因为这可能会导致问题(例如访问空指针)
我还希望测试用例的其余部分正常运行,只是失败的测试被标记为失败.
我注意到XCTestCase有一个名为continueAfterFailure的属性.
但是,将其设置为YES会导致失败的测试在断言之后继续执行,并将其设置为NO导致其余的测试根本不运行.
有没有解决这个问题?
谢谢,
约阿夫
解决方法
帕斯卡的答案给了我这个想法,以达到这个正确.当断言失败时,XCTool的行为就像OCUnit:测试用例的执行立即被中止,tearDown被调用,并且运行下一个测试用例.
简单地覆盖你的基类(从XCTestCase类继承的)中的invokeTest方法:
- (void)invokeTest { self.continueAfterFailure = NO; @try { [super invokeTest]; } @finally { self.continueAfterFailure = YES; } }
而已!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。