xcode – 使用断言失败XCTestCase,而测试继续运行,但不停止其他测试

我试图使用XCTest框架测试我的应用程序.

如果某些逻辑条件成立(使用断言),我希望我的单个测试用例失败.
我不想让测试用例中的其余代码运行,因为这可能会导致问题(例如访问空指针)
我还希望测试用例的其余部分正常运行,只是失败的测试被标记为失败.

我注意到XCTestCase有一个名为continueAfterFailure的属性.
但是,将其设置为YES会导致失败的测试在断言之后继续执行,并将其设置为NO导致其余的测试根本不运行.

有没有解决这个问题?
谢谢,
约阿夫

解决方法

帕斯卡的答案给了我这个想法,以达到这个正确.当断言失败时,XCTool的行为就像OCUnit:测试用例的执行立即被中止,tearDown被调用,并且运行下一个测试用例.

简单地覆盖你的基类(从XCTestCase类继承的)中的invokeTest方法

- (void)invokeTest
{
    self.continueAfterFailure = NO;

    @try
    {
        [super invokeTest];
    }
    @finally
    {
        self.continueAfterFailure = YES;
    }
}

而已!

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...