我们继续主题,按下 Command + U 运行单元测试,断言依然会失败:
而这次给出的错误消息,是 Nimble 自动生成的(其实绝大多数情况下,自动生成的错误消息就足够用了)。
好了,我们现在可以修正一下代码,让断言通过了:
我们现在对 Nimble 有了一个初步的认识了。而 Nimble 能为我们提供的,远不止这些。下面我们来继续了解。
对于 Swift, Nimble 也提供了操作符重载的支持,比如我们上面判断相等的方法,也可以写成这样:
expect(i) == 0
类似的,我们还可以进行比较操作:
expect(i).to(equal(0))
expect(i) == 0
expect(i).to(beGreaterThan(-2))
expect(i) > -2
expect(i).to(beGreaterThanOrEqualTo(0))
expect(i) >= 0
expect(i).to(beLessThan(2))
expect(i) < 2
expect(i).to(beLessThanOrEqualTo(1))
expect(i) <= 1
我们看到,每一个比较方法,在 Swift 中都提供了操作符重载,非常方便。
我们还可以对异步方法进行测试:
var collection:Array<String> = []
dispatch_async(dispatch_get_main_queue()) {
collection.append("first")
collection.append("second")
}
expect(collection).toEventually(contain("first","second"))
还可以使用 waitUntil 方法来阻塞当前线程,直到某些操作执行完成:
waitUntil { done in
NSThread.sleepForTimeInterval(0.5)
done()
}
你还可以用 Nimble 来判断两个实例的引用是否相同:
expect(actual).to(beIdenticalTo(expected))
expect(actual) === expected