テンパル!
Rhino調査をしているんだけどなかなかいいドキュメントにぶつからない。
テンパッタ〜。
最終目標はJUnitの実行なんだけど。
某所の方法でもいけるかも知れないけどあれは1ファイルに複数テストが書けない。
というか書けるけど数が正しくなくなるしどのテストでこけてるかわかりにくい(はず)
で簡単にできる方法ないかなと。
testcase自体は書こうと思えばかけるっぽい。
test.js
var test = new Packages.junit.framework.TestCase(){ test1 : function (){ java.lang.System.exit('TEST'); assertEquals(true, false); } }
書けるだけ。実行できるかは別問題ね。
でjavaの世界へ持ってくるために
Script script = cx.compileReader(in, filename, 1, null); Object result = script.exec(cx, sharedScope); Object o = sharedScope.("test", sharedScope); TestCase tc = (TestCase) cx.jsToJava(o, TestCase.class);
と書いていたけど怒られない。
TestCaseっぽいものが返る。
(nullじゃないよ)
でもこの時点で"test1"メソッドは紛失。
当たり前なんだけど。
で更にtcの本体はJavaAdapterクラス。
さてー。なんかうまくいかんな。
で思ったこと
- jsで拡張したオブジェクトはjavaのクラスに変換できない?
うーん、jsToJavaでTestSuiteを返すようにテストケースも書けばいいのかなあ?
ぐぬぬぬ、別アプローチにした方が良さげだなあ。
明日は別アプローチで
- テストケースを普通に書く
- compile
- idからtestで始まるものを取り出す
- Functionに変換
- TestCaseを作成し渡す
- 実行
みたいな事を考えてみようかな。
ホントはFunctionオブジェクトがそのままTestCaseになって実行できたらいいんだけどなんか方法あるかなあ?
wrapFactoryでなんとかできる???
もーわからん。
うくく。