なぜ再三GroovyからJavaScriptを呼ぼうとしたか

Groovy,JavaScript

なぜ何度もJavaScriptを呼ぼうと頑張ったかというと、以下のjavascriptテストフレームワークを使用したかったから。

Maven - JsTester

テストケースを書くために、Groovyに特化したクラスも用意されている。

Maven - Frequently Asked Questions

掲載されていたものを抜粋し、若干バグっている部分を修正。(このサイトのソース、あちこちにタイプミス、変数定義漏れなどがあり、若干バグっているがw)

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" );
   }
}

結構おもしろいなぁと思った。最後の

     assertExpressionEquals( "$groovyVar", "counter" );

の部分は、

     assertExpressionEquals( groovyVar, "counter" );
でも比較可能。(というか、なぜサンプルで文字列にしてあるのか不明)第二引数がテストケース内でevalを実行した結果定義された変数、関数を表す。

Groovy,JavaScript