Node.jsのテストフレームワークについて
Node.js のテストフレームワークは主要なものはここにありますが、どれがいいのか迷ったので試してみたもの、ドキュメントを読んで良さそうものについて印象を記録しておきます。
ちなみに、選出の基準は「ドキュメントが充実していること」です。
追記
ブコメで[twitter:@meso]さんが指摘されてますが、Tobiというブラウザの動作をエミュレーションするモジュールもあります。あと、nClosureもテスト機能をふくんでいるので追加しました。
テストフレームワーク
expresso(GitHub - visionmedia/expresso: use mocha)
- ドキュメン充実(Expresso - TDD Framework For Node)
- 作者はTJ(expressのauthor)
expressを使っているなら素直にこれを使ったほうがいいかも- いまならMochaの方がいい
- 非同期テスト
- jscoverageサポート
Vows(GitHub - vowsjs/vows: Asynchronous BDD & continuous testing for node.js)
- 公式サイト(Vows « Asynchronous BDD for Node)
- Behavior-Driven Development(BDD)
- 非同期テスト
- 出力は JSON/Spec/Dot Matrix対応
- 個人的にはNodeでBDDするならjasmineよりこっちの方が好み
jasmine-node(GitHub - mhevery/jasmine-node: Integration of Jasmine Spec framework with Node.js)
- JasmineのNode版
- Behavior-Driven Development(BDD)
- ドキュメントは本家Jasmineを参照(http://pivotal.github.com/jasmine/)
nodeunit(GitHub - caolan/nodeunit: Easy unit testing in node.js and the browser, based on the assert module.)
Tobi(GitHub - LearnBoost/tobi: Tobi: Expressive server-side functional testing with jQuery)
- Browserオブジェクトによりブラウザの動作をエミュレート
- jQuery及びjsdomを利用して、DOMにアクセスしてテストできる
nClosure(NClosure - Closure Tools on Node)
- Google Closure LibraryのNode版
- テストの他、Closure Conpiler(圧縮、最適化)、スタイルチェッカなどのツールを含む
- クライアント側もClosure Libraryを使っているならこれかな?
Spy, Stub, Mock ...
Sinon.JS(GitHub - sinonjs/sinon: Test spies, stubs and mocks for JavaScript.)
- 公式サイト(Sinon.JS - Standalone test fakes, spies, stubs and mocks for JavaScript. Works with any unit testing framework.)
- Spy, Stub, Mock関連は正直これでいいんじゃなかろうか?
- 主な機能
- Spy
- Stub
- Mock
- Fake Timer
- Fake XHR
- Fake Server
- Sandbox
- Assertion
- テストフレームワークとの連携もドキュメントに書いてるので安心
- QUnit
- nodeunit
- Jasmine