私が今年イベントで喋ったプログラマはたぶん50人近くいて、その度にJSのテストについて話を伺っておるのですが、ちゃんとJSのテスト書いてる人は1人しかいませんでした。html5カンファレンスの会場でオーディエンスに聞いた時もjsのテストを書いている人は2%くらいしかいませんでした。その多くが、書いた方がいいってのはわかってるんだけどねぇ〜みたいな感じでした。
#なぜ書かないか?
テストコードを書くのがめんどうだから
テストコードを修正するのがめんどうだから
非同期なテストを書きにくいから
#じゃあ、その問題解決するからテスト自動化しようぜ
テストを書かずにテストの自動化?そんなことできるのかよ
#Porkyならできるよ!
どうやって使うの?
#jsファイルを4つ読み込むだけ
https://github.com/puriketu99/porkyからcloneして、必要なファイルを読み込む
git clone https://github.com/puriketu99/porky.git
<script src="/porky/jquery.js"></script>
<script src="/porky/indexeddb.shim.js"></script>
<script src="/porky/jquery.indexeddb.js"></script>
<script src="/porky/porky.js"></script>
#テストの登録は?
下記の関数をテストケースに登録する場合を考えます。
append = function(){$("body").append("test case1");};
javascriptコンソールから、下記を実行します。
>porky.register({name:"test1",func:"append"})
nameはテストの名称、funcは関数の名前です。
ajaxの場合は、is_ajax:trueを引数のオブジェクトに追加してください。
これでテストの登録は完了です。
#テストの実行は?
Chromeのjavascriptコンソールから下記を実行します。
>porky.run()
pokry.runを実行すると、下記のようにテスト結果がconsole上に出力されます。
Porky
Runner
test1
UI test
success
JSON test
success
test1: 13ms
Porky: 25ms
フィードバックがあればよろしくお願いします。
https://github.com/puriketu99/porky