2008/12/01

GroovyでJavaScriptソースをコールしてみる

先週まで、サーバサイトjavascriptを使用したシステムに携わっていました。

その時にJUnitを使ってテストをできないかといろいろ調べていたときのメモ。

(最近ではTestNGなるものが話題のようですが、ろくすっぽJunitも使っていないのに次のテストフレームワークを試す気もなく、まずはJUnitを使い倒すべく勉強中です。)

javascriptなので、jsUnit的なものを使用したら解決なのデスが、やはりそこはGroovy中毒としては引けません。

まずはGroovy(javaでできるけど)でjavascriptソースをコールしてみる。

import javax.script.*;

def engine = new ScriptEngineManager().getEngineByName("JavaScript");

engine.with{
    eval("var genzou = {age:29, sex:'man'};");

    def obj = eval("genzou")
    println obj.get("age", obj)
}

 まずは文字列をjavascriptとして実行し、結果を取得。意外と簡単。

ただ、オブジェクトのプロパティ参照がやや面倒くさい。Scriptable (Rhino)のgetメソッドを実行しているようなのですが、第二引数が毎回自分自身を引き渡してやる必要があるようです。(へびさん言語のselfチックです。ちがう?)

次は、metaClassにgetAtメソッドを追加して、ちょっとだけ簡単にしてみる。

0 件のコメント:

コメントを投稿