2012年3月6日火曜日

JavaFX + JUnit で javascriptのunit testできるようにしてやるんで、これからハマっていってやんよ - 1

こんちわ。

大分暖かくなって来ました。

暖かくなってくると、旅に出たくなります。

特に、春なら鹿がお勧めです。

ついでに勉強会にも参加しましょう。

というわけで、


鹿駆動勉強会



とかいうのにエントリーすることになりました。

能楽堂でLTをするらしいです。


で、ネタ


JavaFX1のときはあまり惹かれなかったんですが、

JavaFX2になって、Webkit搭載となったので、

おお、JUnitでjavascriptのテストできんじゃね~と思ったので、

試してみることにしました。

まあ、その辺の経緯はtogetterにまとめてます。


事前にJavaFXとThreadにハマった言い訳を書いておく


もともと業務SEだったオレなので、

JavaのGUIとかはあまり触ったことがないというか、

ほとんど触ったことがないというか、

Javaを勉強した時にチョコっと触っただけです。はい。

なので、かなりクソいコードになっています。

サーバーサイドのJavaは書いたことありますです。



テスト対象のJavascript




特に大したことのないコードです。

数字を返す関数、文字列を加工して返す関数、オブジェクトを返す関数です。



テスト戦略???


テスト対象のJavascriptは大したことのないものですが、

ajaxアプリケーションのテストもやっていきたいので、

サーバーを立てていこうと思います。

JUnitでテストサーバーを立てる場合、

以前のエントリにも書きましたが、

Jettyエンベデッドサーバーを用いていきます。

サーバーが立ち上がった後で、ブラウザを立ち上げて、javascriptのテストをしていくという流れになります。

したがって、書いていくJUnitのコードは次のようになります。

  • @BeforeClassにてJettyサーバーを立ち上げる。
  • @Beforeにてブラウザーを立ち上げる。
  • @TestにてJavascriptのテストを実行する。
  • @Afterにてブラウザーを終了させる。
  • @AfterClassにてJettyサーバーを終了する。


JUnitのコード


次のような感じです。




なお、ハンドラーをJUnitに書くと若干読みづらくなるので、ハンドラーは別クラスにしてあります。





ハマる様子をとくと見よ


さて、JsJUnitを実行してみるとこんな感じになる。





JavaFXのWebViewはJavaFXのThreadで立ち上げなければならないらしいだって(´・ω・`)



さて、まだまだハマるのだが、それは後日。

0 件のコメント:

コメントを投稿