JUnit上でJavaScriptのテストを行う方法をご紹介します。
JavaScriptのfunctionも、テストしたい!
画面を作るのはJavaScript、CSSで任せて、サーバサイドはデータのコントロールに専念するのが、最近のはやりのアーキテクチャのような気がしたり、しなかったり。
そんなこんなで、JavaScriptの重要性はますます上がって、JavaScriptがいろいろなロジックを持つことが多くなってきました。
だから、JavaScriptのfunctionも、テストしたい。
Javaなら、できる。JavaScriptのテスト。
Javaは、JavaScriptエンジンを持っているのです。JREに入っているので、別途テスト用にライブラリを取り込む必要はありません。
JUnit上でJavaScriptをテストしてみましょう。
テスト対象のJavaScriptは以下の様なコードとします。JavaScriptは外出しファイルにしておきましょう。
scriptToBeTested.js
function plus(x, y) {
return x+y;
}
これをJUnitのテストコード中でテストしてあげましょう。
TestCaseのメソッド抜粋
@Test
public void testPlus() throws ScriptException, IOException {
ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
FileReader reader = new FileReader("WebContent/js/scriptTobeTested.js");
engine.eval(reader);
Assert.assertEquals(true, engine.eval("plus(1, 1) == 2"));
reader.close();
}
これでJUnitでJavaScriptがテストできます。簡単。
JavaScriptもテストしやすいように疎結合なfunctionを作っておくと良いですね。