在失败的断言时,Xcode不会终止测试例程.它是否正确?
我无法理解这背后的原因,我希望它表现得像assert并让它终止程序.
通过以下测试,它将打印“仍在运行”.
这是有意的吗?
我无法理解这背后的原因,我希望它表现得像assert并让它终止程序.
通过以下测试,它将打印“仍在运行”.
这是有意的吗?
- (void)testTest { XCTAssertTrue(false,@"boo"); NSLog(@"still running"); }
我不知道这有什么用,因为当前提条件不满足时,后续代码会崩溃:
- (void)testTwoVectors { XCTAssertTrue(vec1.size() == vec2.size(),@"vector size mismatch"); for (int i=0; i<vec1.size(); i++) { XCTAssertTrue(vec1[i] == vec2[i]); } }
解决方法
您可以更改XCTAssert< XX>的此行为.
在setup方法中,将self.continueAfterFailure更改为NO.
在setup方法中,将self.continueAfterFailure更改为NO.
IMO在测试断言失败后停止测试是更好的行为(防止崩溃导致不运行其他重要测试).如果测试需要在失败后继续,这意味着测试用例只需要很长时间就可以拆分.