2015-12-20 『JUnit実践入門』読書会の振り返り (第1章)
JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)
- 作者: 渡辺修司
- 出版社/メーカー: 技術評論社
- 発売日: 2012/11/21
- メディア: 単行本(ソフトカバー)
- 購入: 14人 クリック: 273回
- この商品を含むブログ (68件) を見る
第1章 JUnitチュートリアル
ユニットテストの定義について
- 企業などによってユニットテストの意味するものが違う
- この本においてはクラスやメソッド単位でプログラムの仕様を検証すること
チュートリアル
チュートリアルの内容
- 簡単な計算を行うCalculatorクラスが対象
- 乗算を行うmultiplyメソッドを持つ
- 除算を行うdivideメソッドを持つ
- 状態は持たない
環境がPleiades Marsの場合
- ライブラリの追加は不要だが、新規テストクラスを作成した際にライブラリの追加を行うためのダイアログが出てくる
- デフォルトのJUnitのバージョンは4.12
- QuickJUnitプラグインはインストールされている
テストコードの記述
- テストクラスはpublicクラス
- テストメソッドは
@Test
がついたpublicかつvoid - throw句は設定可能
この本ではテストメソッド名に日本語を推奨している
アサーション
- 「戻り値などで実際の値と期待された値が一致する(しない)はずである」という比較検証をする際の宣言
- assertThatメソッドを使って実装する
メソッドの追加
コメント
失敗時のコメントで実績値と期待値の値のインデントは揃えて欲しい
→ 長い文字列で一か所違うくらいの場合、分析するのが手間
→ IDEなら差分箇所を色分けするなどして欲しい
実績値と期待値でインデントをそろえた例:
Expected: is <12> but: was <35>
ソフトウェア業界ではJUnitでの自動テスト実行の反対派のほうが多い?
→ 開発者的にはめんどくさくて嫌がる
→ 顧客や経営側的にはコストがかかるので嫌がる
→ そもそもテスト実装の工数をとっていない
以前のテスト勉強会で出た話だと、
- 動的型の言語だとテストつくらないで実装するほうが難しい
- 保守が不要な案件(定期的にコンテンツを提供する案件など)では品質保証のテストは不要