JUnit(Java)でJavaScriptをテストする。

More than 5 years have passed since last update.

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を作っておくと良いですね。