SE情報技術研究会’s blog

http://se-info-tech.connpass.com

2015-12-20 『JUnit実践入門』読書会の振り返り (第1章)

JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)

JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)

第1章 JUnitチュートリアル

ユニットテストの定義について

環境がPleiades Marsの場合

  • ライブラリの追加は不要だが、新規テストクラスを作成した際にライブラリの追加を行うためのダイアログが出てくる
  • デフォルトのJUnitのバージョンは4.12
  • QuickJUnitプラグインはインストールされている

テストコードの記述

  • テストクラスはpublicクラス
  • テストメソッド@Testがついたpublicかつvoid
  • throw句は設定可能

この本ではテストメソッド名に日本語を推奨している

アサーション

  • 「戻り値などで実際の値と期待された値が一致する(しない)はずである」という比較検証をする際の宣言
  • assertThatメソッドを使って実装する

メソッドの追加

コメント

失敗時のコメントで実績値と期待値の値のインデントは揃えて欲しい
→ 長い文字列で一か所違うくらいの場合、分析するのが手間
IDEなら差分箇所を色分けするなどして欲しい

実績値と期待値でインデントをそろえた例:

Expected: is <12>
but: was     <35>

ソフトウェア業界ではJUnitでの自動テスト実行の反対派のほうが多い?
→ 開発者的にはめんどくさくて嫌がる
→ 顧客や経営側的にはコストがかかるので嫌がる
→ そもそもテスト実装の工数をとっていない

以前のテスト勉強会で出た話だと、

  • 動的型の言語だとテストつくらないで実装するほうが難しい
  • 保守が不要な案件(定期的にコンテンツを提供する案件など)では品質保証のテストは不要