大規模開発に欠かせない物、それは…
JavaScriptのテスト
「JavaScriptをバリバリテストしてます。」とかあんまり聞かない…
JavaScriptのテスト環境はまだまだ未成熟
ところで、ここでいうテストには「JavaScriptのテスト」か、「JavaScriptを含めたテスト」の2つがあります。
前者はJavaScriptエンジンさえあればできますが、ライブラリ作者とかでない限り、あまり重要ではありません。
後者はアプリケーションを取り巻く環境一式とクライアント(つまりはブラウザ)が必要となる(所謂、インテグレーションテスト)ので、大変ですが効果は高いです。
インテグレーションテストは書くのは大変で、直すのはすごく大変だし、実行も遅い。
その代わり、その機能が動いていることを確実に保証できる(ようにテストを書くことができる)。
遅い遅いとよく言われますが、selenium自体はそんなに遅くない。
インテグレーションテストはどうしても遅いので、むしろseleniumはとばっちり…。(とはいえ速いわけではない)
Railsでは
などがある
色々ありますが、QUnitとJasmineが人気
QUnitはUnitテストなので、どちらかといえばライブラリ(作者)向け(アプリケーションに使えないわけではないし、そういうアプローチもある)
JasmineはBDD(behavior-driven development)スタイルで、アプリケーションのspecを書くことができる
describe("Jasmine", function() {
it("makes testing JavaScript awesome!", function() {
expect(yourCode).toBeLotsBetter();
});
});
describe "Jasmine", ->
it "makes testing JavaScript awesome!", ->
expect(yourCode).toBeLotsBetter()
http://johnbintz.github.com/jasmine-headless-webkit/
JasmineのspecをCUI環境でいい感じにテストできる素敵ツール
JavaScriptのテスト環境もだいぶ整ってきたので、是非お試しいただければと。