気付くと一か月放置><

いや、忘れていませんよ。
http://sourceforge.jp/projects/cfneo
ほらね。


前回SeasarConference2008Autumnで発表させて頂いたcfneoの実装は、単なるColdfusionでのJUnitの焼き直し的なものでした。CFUnitでもUnitTestは出来るのですが、CFUnitだとJUnit同様全て「成功」してしまうと、どんなテストケースでテストをしたのかパッと見でよく分からないので、テストケースを並べて可否をその横に表示する、というアプローチをしています。

これをversion0.01bとしてリリースした訳ですが、この次のステップとして何を求めるべきか?という点であれこれ考えている状態が今です。


一時、テストドライバの一覧でテストの可否を表示できるように、遅延読み込み的なテスト実行方法を考えたりしましたが、SC2008Autumnの講演でお話ししたように、「テストコードを書こう。それは開発プロセスの成果物の中で、唯一コードと(UnitTestの)仕様を繋ぐものだから」といったアプローチを進めていくべきではないか、とも思いまして。

「コードと仕様を繋ぐもの」は、結局は人間なので繋ぎ続けるのも人間なのは確かなのですが、繋がっている事を確認するのは人間でなくても良いようにする、というものがテストコードという存在のポジションです。


そこでcfneoを見直してみると、CFMLのコードからCFMLの「テスト可能なコードをテストする」は実現できました。続いて、「CFMLからテストが非常にし辛い部分」をターゲットにしようかな、と。

それが最近Watijにどっぷりな理由ですね。

Coldfusionでコードを書くことが目的ではなく、あくまで「テストを何とかする」がcfneo-Projectのテーマでありゴールなので、Watij(Web Application Testing in Java / http://watij.com/)というアプローチも全然ありかと思ってます。もともと僕自身、Javaが母国語だと思ってますし。(実力はまた別ですよ、別><)


ただし、Confirmのダイアログがちゃんと動かない><とここでぼやいているように、WatijはWatijで結構癖のあるAPIだと感じました。簡単なWrapperを作らないと、実際の案件で使うには結構骨が折れます。

という訳で、cfneo-Project配下のリポジトリ内でコードネーム[at4ie2(AutoTester for Internet Explorer)]として開発中です。(最後に2を付けたのは、最初に僕がちゃんと考えて作らなかったのでリファクタリングが出来ないくらいヒドイ状態になりましてやむなく捨てましたw)


ちなみに、WatijにはもともとPNGファイルでスクリーンショットを作れる機能がありまして、これがかなり気に入っているんで、ちょっとだけ昼間の仕事で使ってみたりしましたが、スクリーンショットを取るタイミングでIEが一番手前に表示されていないとその手前にあるアプリケーションが写り込んでしまうので、昼間テストケースを作っておいて帰る前に実行→帰宅、翌日結果を確認という流れとか、お昼や打ち合わせでそれなりの時間席を離れる時に実行→(ryというシチュエーション以外ではあまり便利じゃないです。