XCTAssertNotNil在Swift 2中什么都不做

时间:2016-05-20 19:01:51

标签: swift xctest

在我新创建的Xcode 7.3.1项目中,我有一个看起来像这样的测试用例:

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

当我运行我的测试时,我清楚地看到控制台说“日期选择器是零”但是断言没有触发。选择器只是一个正常的出口:

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

为什么断言nil被忽略?

2 个答案:

答案 0 :(得分:1)

XCTAssertNotNil的最小可能示例适用于我:

enter image description here

尝试在测试代码中添加断点,并仅运行此测试。

答案 1 :(得分:0)

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