Xcode不会在失败的断言时终止测试例程。这样对吗?
我无法理解其背后的原因,我希望它的行为类似于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>
的行为。
在设置方法中,将self.continueAfterFailure
的值更改为NO。
在测试断言失败后,IMO停止测试是更好的行为(防止崩溃导致不运行其他重要测试)。如果测试在失败后需要继续进行,则意味着测试用例太长了,应该将其拆分。
关于xcode - XCTAssertTrue不会停止例程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23845923/