Xcode单元测试不识别零?

Posted

技术标签:

【中文标题】Xcode单元测试不识别零?【英文标题】:Xcode unit testing not recognizing nil? 【发布时间】:2016-02-19 12:27:08 【问题描述】:

我在纯 Swift 项目中使用 Xcode 版本 7.2 (7C68)。我遇到了这个怪物!任何人都知道如何“解决”这个问题?

retrivedDate 被声明为

var endDate: NSDate?

【问题讨论】:

print("retrievedEndDate -> \(retrievedEndDate) with type \(retrievedEndDate.dynamicType)") 输出什么? 它打印类型为 ImplicitlyUnwrappedOptional> 的 retrievedEndDate -> nil 【参考方案1】:

大概

XCTAssert(retrievedEndDate == nil, "retrievedEndDate is nil")

会工作的。

另外,您可以改写您的测试以改用XCTAssertNotNil

或者作为一种解决方法,您可以这样做:

guard let endDate = retrievedEndDate else  XCTFail("retrievedEndDate is nil") 

但这不是很漂亮。

【讨论】:

更新了答案,提供更多信息;)【参考方案2】:

我宁愿检查retrieveedEndData 是一个选项。例如:

let retrievedEndDate : NSDate? = nil

当断言如下时应该返回 true:

XCTAssertNil(retrievedEndDate)

【讨论】:

以上是关于Xcode单元测试不识别零?的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 不再识别测试

Xcode 命令行工具 (XCode 4.6) 从终端运行单元测试

Xcode 单元测试,在 `class setUp()` 中等待

如何使用 Xcode 单元测试测试没有参数的 void 类方法

从零开始写博客系统——测试我们的代码(单元测试)

从零开始写博客系统——测试我们的代码(单元测试)