本書における概念的な部分のおさらいは終わり、ユニットテストを書きたくてうずうず。さあ、いよいよコードを書く段となった。
突如として現れる沢山のツール群。
・XMPP
・Openfire
・Smack
・Swing
・WindowLicker
ぺちぱーのぼくにはさっぱりわからない。
概要は書いてるけど、あまり詳細には解説されていない模様。
Swingに至っては「いやーまさかこのご時勢Swingも知らない人間なんていないだろうし、解説なんてしてもページ数の無駄だよね!え?わからないから詳しく知りたい?ggrks」といわれる始末(超解釈)。
何はともあれ本来の「テスト駆動開発の学習」という目的に影響が出そうだし、この記事ではそれぞれのツールの関係を整理し、解説していくことにする。
XMPP?
eXtensible Messaging and Presence Protocol。
メッセージ交換とかログイン状況とかを通知する時に使われるプロトコルらしい。
データはXMLでやり取りされるとか。
Openfire?
HTTPがプロトコルだけあっても それを使うブラウザが無いとインターネットを見れないのと一緒で、
XMPPっていうプロトコルだけが存在しても それを使うものが無いとあれこれできない。
ということでこのXMPPを使って実際に グループ間でのメッセージング とか色々できるようなサーバを立ててくれるのがこのOpenfireというやつらしい。
具体的な解説はここに記載した。
Smack?
結構一気に色んなツールが出てきたので整理する。
先ほどOpenfireの解説をしたけど、ここまでやってきたのって Openfireでメッセージング用のサーバ立てただけで、別にJavaやExlipseとは全く絡んでいないということ。
じゃあ実際にJavaでOpenfire使ってXMPP経由のメッセージングをするにはどうするんだーっていう時に使うのがSmack。
いわばSmackとは、XMPPをJavaで利用するために必要なライブラリ。
Swing?
今回の目的を振り返ると、オークションスナイパーっていう仮想のオークションアプリをつくることだった。
これまで見てきたツール群は いかにしてJavaを通じてメッセージングを図るかという部分だったが、今度は実際にユーザがそれを操作するためのGUIが必要だ。
このJavaでGUIを操作するためのものこそまさに「Swing」である。
Eclipse上のJDKにデフォで入ってたと思うので、特段何かをインストールする必要とかはなかった( 唯一やった事としては、javax.swing.JFrame を importした )。
以下は Swingを使用して「HOGE」というタイトルのウィンドウを立ち上げるプログラムの例である。
package neko; import javax.swing.JFrame; public class Neko { public static void main(String[] args){ JFrame frame = new JFrame("HOGE"); frame.setBounds(50,150,300,500); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
WindowLicker?
コードのテストをJUnitでやるのはわかるけど、GUIのテストって何でやるの?ってなったときに必要なものです。
つまり、WindowLickerはJavaにおけるGUIのテストツールという位置づけになります。
例えばPHPとかのWebプログラミングの例で言うと、通常のユニットテストをPHPUnitで回して、エンドツーエンドをSeleniumで回すイメージです。
因みに初めてWindowLickerをビルドした時の画面は割と圧巻です。
まとめ
お粗末な図ではあるが、まとめるとこんな感じだろうか。
各ツールのインストール方法
こちらに関しては非常にわかりやすくまとめて下さっている方がいらっしゃったので、その記事をシェアさせていただきます。
Futurismo - 実践テスト駆動開発(GOOS本)の写経環境構築まとめ(Windows + Eclipse)
何はともあれ、これでようやく本の主題に取り掛かれそうだ。
Written by Nisei Kimura ( 木村 仁星 )