JUnit を使ってテストする

JUnit を使ってテストするための三つの方法」なんて釣りタイトルにはしませんよっと。

Ruby の様な動的言語だと Mock を作りやすいからテストケースを作りやすそうなんだが、静的言語の Java だとなかなか作りにくい。JUnit を使って精度を上げたいという気持ちはあるが、どうしても先に動くもの(画面遷移するもの)を作ってしまって、テストファーストなんてかったるいと思ってしまう。そしていざテストケース作ろうと思ったら・・・フレームワークや環境にガチガチにされてて、一つテストケース作ろうにもどれだけ準備作業があるんだよ・・・てか無理 orz となってしまうのがいつものパターン。
けど、そろそろそういうのもダメだろうと思い直して今回作成しているアプリケーションではちょっとずつ取り組んでみた。
予想はしていたけど、修正時のデグレ防止効果は十分にあると感じた(当たり前か)。何より、JUnitの緑のバーがグングン伸びていくのがものすごく嬉しい!!これホントに気持ちいいんだ。
で、自分なりに心がけたもの

  • JUnit でテストケースを作ることを考えてロジックを組む
  • アプリケーションを一通り作った後、機能修正や障害修正をするときにテストケースを書く
  • テストケースを書いてテストしてから修正する。その後に再度テスト。

1番目をサラッと書いてるけど、これが一番難しいんだな(^^;ある程度経験というか、勘がないとできないかも。でも、これを心がければゴリゴリ書いたり関連性がめちゃくちゃなクラス構成にしたりすることが抑えられるはず。2番目は最初にテストケースを気合いを入れて書こうとすると気持ちが続かなくなっちゃうってこと。3番目は当たり前だけど障害が発生した場合にテストケースを書くとして、そのテストケースが失敗することを必ず確認してから修正する。そうしないと修正でOKになったのかもともとOKだったのかが分からなくなる。
テストケースを書き始めると、修正するときに JUnit 通さないと怖くなるという良いんだか悪いんだか良く分からない精神状態になることも分かった。