xcode - XCTAssertTrue不会停止例程

标签 xcode unit-testing xcode5

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/

相关文章:

java - requestparam 的 Spring 验证不起作用

node.js - 如何使用 sinon stub 异步数据库调用

reactjs - React 测试库中的类型 'value' 不存在属性 'HTMLElement'

ios5 - 在XCode 5中使用iOS 5 Simulator?

objective-c - 在当前参数寄存器 0x​​104567911 中找到的选择器名称

ios - 阿拉伯语翻译在 iOS 9 上不工作,但在 iOS 10 上工作

xcode - 用户登录后Mac OSX App崩溃

ios - XcodeColors 在 XCode 5 中不起作用

swift - 当 UIView 的动态标签足够小时,在 ScrollView 中垂直居中,但一旦它们不够小,就将其对齐到顶部

ios - 无法加载 "image"的快速查看数据