XCTAssertNotNil 在 Swift 2 中什么都不做

XCTAssertNotNil does nothing in Swift 2

在我新创建的 Xcode 7.3.1 项目中,我有一个如下所示的测试用例:

func testDatePicker_configuredCorrectly() {
    if vc.datePicker == nil {
        print("Date picker is nil")
    }
    XCTAssertNotNil(vc.datePicker, "Date picker must be linked")
}

当我 运行 我的测试时,我清楚地看到控制台说 "Date picker is nil" 但断言没有触发。 picker就是一个普通的outlet:

final class UsageViewController: NSViewController {
    @IBOutlet weak var datePicker: NSDatePicker!
}

为什么 not nil 的断言被忽略了?

XCTAssertNotNil 的最小示例适用于我:

尝试在测试代码中加断点,只运行这一次测试

您的测试似乎存在竞争条件,因为它取决于 vc 的状态,该状态在此测试范围之外进行管理。您可以按照您的说明强制加载视图,也可以设置谓词期望。