anchor.diff:  此外，本小节中的helper方法都是以 <<mocha-promise,Mocha对Promise的支持>> 为前提的，
   在 <<done-promise-test,基于`done` 的测试>> 中使用的话可能会比较麻烦。
   
  -是使用基于测试框架对Promis的支持，还是使用基于类似`done` 这样回调风格的测试方式，每个人都可以自由的选择，只是风格问题，我觉得没必要争一个孰优孰略。
  +是使用基于测试框架对Promis的支持，还是使用基于类似`done` 这样回调风格的测试方式，每个人都可以自由的选择，只是风格问题，我觉得倒没必要去争一个孰优孰劣。
   
   比如在 http://coffeescript.org/[CoffeeScript]下进行测试的话，由于CoffeeScript 会隐式的使用return返回，所以使用 `done` 的话可能更容易理解一些。
   
  -对Promise进行测试比对通常的非同步函数进行测试坑更多，虽说采取什么样的测试方法是个人的自由，但是采取前后风格一致的测试则是非常重要。+对Promise进行测试比对通常的异步函数进行测试坑更多，虽说采取什么样的测试方法是个人的自由，但是在同一项目中采取前后风格一致的测试则是非常重要。
  
positive.code: ** 结果为Fulfilled 测试为 **Fail**
  ** assertion 的结果不一致的时候要 **Fail**
  
  如果能网罗上面的用例（Fail）项的测试的话，那么我们就称其为可控测试。
  
  也就是说，一个测试用例应该包括下面的测试内容。
  
  * 结果满足 Fulfilled or Rejected 之一
  * 对传递给assertion的值进行检查
  
  前面的使用了 `.then` 的代码就是一个期望结果为 Rejected 的测试。
  
  [source,javascript]
  ----
  
negative.code: include::embed/embed-shouldRejected-test.js[]
  ----
  
  `shouldRejected` 函数接收一个promise对象作为参数，并且返回一个带有 `catch` 方法的对象。
  
  在这个 `catch` 中可以使用和 onRejected 里一样的代码，因此我们可以在 `catch` 使用基于 assertion 方法的测试代码。
  
  在 `shouldRejected` 外部，都是类似如下、和普通的promise处理大同小异的代码。
  
  . 将需要测试的promise对象传递给 `shouldRejected` 方法
  . 在返回的对象的 `catch` 方法中编写进行onRejected处理的代码
  . 在onRejected里使用assertion进行判断
  
  在使用 `shouldRejected` 函数的时候，如果是 Fulfilled 被调用了的话，则会throw一个异常，测试也会失败。
  
  