在失败的断言时,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在测试断言失败后停止测试是更好的行为(防止崩溃导致不运行其他重要测试).如果测试需要在失败后继续,这意味着测试用例只需要很长时间就可以拆分.