なぜ何度もJavaScriptを呼ぼうと頑張ったかというと、以下のjavascriptテストフレームワークを使用したかったから。
Maven - JsTester
テストケースを書くために、Groovyに特化したクラスも用意されている。
Maven - Frequently Asked Questions
掲載されていたものを抜粋し、若干バグっている部分を修正。(このサイトのソース、あちこちにタイプミス、変数定義漏れなどがあり、若干バグっているがw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import net.sf.jstester.ext.GroovyJsTestCase
class GroovyJsTesCaseTest extends GroovyJsTestCase {
void testScript(){
def groovyVar = "10";
def script = """
var counter = 0;
function count(){
counter++;
}
for( i = 0; i < $groovyVar; i++ ){
count();
}
""";
eval( script );
assertExpressionEquals( "$groovyVar", "counter" );
}
}
|
結構おもしろいなぁと思った。最後の
1
2
|
assertExpressionEquals( "$groovyVar", "counter" );
|
の部分は、
1
2
|
assertExpressionEquals( groovyVar, "counter" );
|
でも比較可能。(というか、なぜサンプルで文字列にしてあるのか不明)第二引数がテストケース内でevalを実行した結果定義された変数、関数を表す。