Friday 15 June 2007
JUnit
今週末は、琉大で勉強会があるそうです。
前回のJavaでDartsゲームを作るXP祭で、実は使ってました。感想としては「別に、テスト用のルーチンを持つクラスを別に作るのでいいじゃん」だった。
で、JUnit 読むというので、「それは、つまらないんじゃないか...」と思っていたんですが、最新の JUnit 4.3.1 を見ると...
annotation でテスト用のmethodを識別する
source は Java 1.5 の Generic バリバリで書き直してある
で、7,000行もあるということが判明... いや、まぁ、7,000行ぐらいだと3,4時間で読んだりしますが... (問題は、普通の人が来る勉強会で、そんなことして良いかどうかだ...)
というわけで、昨日は(あわてて)みんなで予習してました。
Eclipse で JUnit のソースを動かすのに1時間ぐらいかかってました。あはは。現場でやるよりは、ましか。
annotation は reflection で取って来るわけね。わりと、素直なプログラミングで、あまり、オブジェクト指向っぽくはないようです。テスト毎にテスト用のオブジェクトを作るみたいなことをすれば、それっぽくなるかも。
でも、Unix なプログラマだったら、find + grep でテストメソッドリストを作って、それから、テストクラスを生成するって、やると思う。Java に閉じてやるのが何が嬉しいかって言うと、非Unix なプログラマがうれしいぐらいって感じ?
Generic バリバリに関しても、あんまり良い印象はなかったです。つまり、
もっと、ちゃんとオブジェクトを細かく作っていれば、そんな
Wild Card Generic をたくさん使う必要はないんだよ
ってことだね。型の階層構造を抽象化出来てないので、cast(型変換) のsyntax sugarでしかない Generic を多用する羽目になるという感じ。特に Wild Card は見栄えが悪くなるだけ。まぁ、Generic/Java 1.5 の勉強がてら作ったという感じだな。
Java の配列は型がなかったので、もともとcastして使っていたんだけど、Generic で、そのcastをconsistentに出来るってのは、うれしいんだけどね。
まぁ、もう少し読んでいくと、面白いところがあるかも知れない... でも、JUnit 作っている人って、デザインパターン知らないんじゃないかと、ちょっと思いました。まぁ、手続き型でプログラムして何が悪いってことではあるが。
勉強会自体は、JUnit 入門 + Eclipse の使い方(Eclipse を使ったソースの読み方)勉強会になるんじゃないかな。
(昨日はそら豆には入れました... 居酒屋ご飯は微妙に苦手...)
Subscribe to:
Post Comments (Atom)
1 comment:
おはようございます。
junitそのものの解析は見たことなかったので、興味深いです!
Post a Comment