水曜日, 6月 05, 2013

exportsされていないjavascriptやCoffeeScriptのメソッドをテストする。

半分以上、自分向けメモ。 

exportsされていないjavascriptのメソッドをテストするにはどうするか。
理屈としては、以下の記事2つを読めばOK。要はjsを別コンテクストにロードして、その時にプライベートなメソッドを引き上げるわけですね。

Testing Private State and Mocking Dependencies
Nodeでプライベートな(exportsされてない)メソッドのテスト

不思議なのは、どちらの記事でも、node-mocksに触れられていない事(一番目の記事のコメントで触れられているだけ)。
これは一番目の記事のvojtajinaさんが作ったライブラリで、ざっくり言えば、解説されている内容が実装されているテスト用のライブラリ。
これを使えば、いちいち上記解説記事のコードを書かなくて済むわけですね。めでたしめでたし。

と思ったのですが、このライブラリ、JSは読み込めるのだけど、CoffeeScriptを直接読み込むことが出来ません(README.mdのサンプルテストコードはCoffeeScriptで書かれているのに)。
もちろん、JSにコンパイルすればよいのだけど、面倒なわけです。

というわけで、CoffeeScriptをロード出来るようにしてみました。

https://github.com/kmtr/node-mocks/tree/coffeescript

npmでインストールするなら、以下を実行。

npm install https://github.com/kmtr/node-mocks/tarball/coffeescript --save-dev

可能な限りCoffeeScriptから出ずに、開発したい私みたいな人におすすめです。

一応、pull requestを送ってみたけどどうだろうか。
オリジナルと比べてcoffee-scriptへの依存が増えてしまったし。