我们继续主题,按下 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