anchor.diff:  Mochaは`it`の仮引数に`done`という感じで指定してあげると、
   `done()`が呼ばれるまでテストケースが終了しなくなることで非同期のテストをサポートしています。
   
  -次のコールバックスタイルのテストは以下のような流れになっています。
  +Mochaでの非同期テストは以下のような流れになっています。
   
   [source,js]
   [[callback-style-test]]
  
positive.code: });
  ----
  
  <<promise-assert-fail,`assert`が失敗してる例>>、この場合「テストは失敗する」と思うかもしれませんが、
  実際にはテストが終わることがなくタイムアウトします。
  
  .promise test timeout
  image::img/promise-test-timeout.png[promise test timeout]
  
  `assert`が失敗した場合は通常はエラーをthrowするため、
  テストフレームワークがそれをキャッチすることで、テストが失敗したと判断します。
  
  しかし、Promiseの場合は`.then`の中で行われた処理でエラーが発生しても、
  
negative.code: });
  ----
  
  ちゃんとテストが失敗する例では、必ず`done`が呼ばれるようにするため、
  最後に`.then(done, done);`を追加しています。
  
  `assert`がパスした場合は単純に`done()`が呼ばれ、`assert`が失敗した場合は`done(error)`が呼ばれます。
  
  これでようやく<<callback-style-test,コールバックスタイルのテスト>>と同等のPromiseのテストを書くことができました。
  
  しかし、`assert`が失敗した時のために`.then(done, done);`というものを付ける必要があります。
  Promiseのテストを書くときにつけ忘れてしまうと終わらないテストが出来上がってしまう場合があることに気をつけましょう。
  
  次に、最初にmochaを使う理由に上げた"Promisesのテスト"をサポートしているという事がどういう機能なのかを学んでいきましょう。
  