2012-02-13 15 views
9

私は、大規模なノードアプリケーションのために、誓からモカに切り替えるかどうかを決めようとしています。誓約からモカに切り替える必要がありますか?

私はほとんどすべての誓いの経験を楽しんだが、引数の受け渡しについては奇妙なことがある。トピックの仕組みを覚えておくためには、いつも頭を悩まなければならず、テストを書くための基礎を妨げています。深くネストされた非同期テストでは特に問題があります。私が誓いをasync.jsと組み合わせることは少し助けになることがわかります。

だから、モカはその報告においてより柔軟に思える。私はテストスタイル&を選択する自由が大好きですが、それはブラウザでも重要なので、非常に便利です。しかし、私は深くネストされた非同期テストの可読性の問題を解決できないのではないかと心配しています。

実用的なアドバイスがありますか?モカは深く入れ子にされたテストを読みやすくすることはできますか?何か不足していますか?

+0

間違いなく、はい。 – Raynos

答えて

8

モカはエースです。これは、ジャスミンが提供するwaititsForではなく、完了コールバックを提供します。私は誓いからの移住について話すことはできませんが、ジャスミンからはまっすぐでした。あなたの中にmochaテスト関数を使用することができます(またはSeqなど..もしあなたがレガシーであることを望むなら)asyncを使用することができます。しかし、その時点でネストされたコールバックが必要な場合は、テストの細分性について考えるかもしれない。

OT:100%テストカバレッジは、ほとんどの場合、値を提供しません。

+0

良い点ありがとうございます。たぶん、あなたはきめ細かさに立っているかもしれません。物事はもう少し分かれるかもしれません。しかし、私はしばしば、3つまたは4つのネストがテストに必要であると言うケースを見つけます。おそらく、何とか記述関数をラップする方法があります。 –

3

深くネストされたテストは、ユニットテストスイートでフロー制御を使用して解決されます。

これは、エクスポートスタイルではこれをサポートするフロー制御ライブラリを作成する必要があるため、これは簡単ではありません。

誓いのためのフローコントロールライブラリを作成するか、またはmochaに切り替えて既存のフローコントロールライブラリを再利用します。

関連する問題