anchor.diff:  });
   ----
   
  -这可测试中 `assert` 失败了，你可能认为会抛出“测试失败”，
  -实际情况却是测试不能正常终了而超时。
  +在此次测试中 `assert` 失败了，所以你可能认为应该抛出“测试失败”的错误，
  +而实际情况却是测试并不会结束，直到超时。
   
  -.测试没有完了产生超时，停在该处。
  +.由于测试不会结束，所以直到发生超时时间未知，一直会处于挂起状态。
   image::img/promise-test-timeout.png[promise test timeout]
   
  -`assert` 失败的情况通常throw一个error，
  -测试框架捕获该error，来判断测试失败。
  +通常情况下，`assert` 失败的时候，会throw一个error，
  +测试框架会捕获该error，来判断测试失败。
   
  -但是，Promise的情况下 `.then` 绑定的执行函数发生的error，
  -会被Promise捕获，从而测试框架不会抛出error。
  +但是，Promise的情况下 `.then` 绑定的函数执行时发生的error
  +会被Promise捕获，而测试框架则对此error将会一无所知。
   
  -我们来改善一下<<promise-assert-fail,`assert` 失败示例>>，
  -让`assert` 失败时显示测试失败。
  +我们来改善一下<<promise-assert-fail,`assert` 失败的promise测试>>，
  +让它能正确处理 `assert` 失败时的测试结果。
   
   [source,javascript]
   [[promise-assert-fail-fixed]]
  
positive.code: });
  ----
  <1> 创建名为`Fulfilled` 的promise对象
  <2> 调用`done` 表明测试结束
  
  
  <<Promise.resolve, `Promise.resolve`>> 用来返回promise对象，
  返回的promise对象状态为FulFilled。
  结果，调用绑定到`.then` 的回调函数。
  
  <<promise-is-always-async,column: Promise总是异步?>> 中也提到的那样，
  promise对象总是异步处理的，所有测试同样需要用异步对应的方式编写。
  
  但是，之前的测试代码中`assert` 失败的情况会出现问题。
  
  [source,javascript]
  [[promise-assert-fail]]
  .错误的测试编写方式
  ----
  it("should use `done` for test?", function (done) {
      var promise = Promise.resolve();
  
negative.code: include::test/basic-test.js[]
  ----
  
  将这段代码保存为 `basic-test.js`，之后就可以使用刚才安装的Mocha的命令行工具进行测试了。
  
  [source,sh]
  ----
  $ mocha basic-test.js
  ----
  
  Mocha的 `it` 方法指定了 `done` 参数，在 `done()` 函数被执行之前，
  该测试一直处于等待状态，这样就可以对异步处理进行测试。
  
  Mocha中的异步测试，将会按照下面的步骤执行。
  
  [source,javascript]
  [[callback-style-test]]
  