JUnit
河野真治 @ 琉球大学情報工学です。
今週末は、琉大で勉強会があるそうです。
http://tinyurl.com/2rrpna
前回の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 を使っ
たソースの読み方)勉強会になるんじゃないかな。
---
Shinji KONO @ Information Engineering, University of the Ryukyus
河野真治 @ 琉球大学工学部情報工学科
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735