概要
当方、渡辺修司さんの著作「JUnit実践入門」を学習したのですが、
いざ書くとなると知識がさっと出てこないという問題に直面。
そこで、知識の体系化をしたい、忘れた時にさっと書籍を復習できるようにしたいと思い
復習用のチャートシートを作成しました。
JUnitを構成する各要素を項目ごとにまとめ、該当するページのみを記載しているので、
項目を見て概要を思い出す。思い出せなければ該当ページを見返す。という風に
学習内容の復習に使えるかと思います。
第1章 JUnitチュートリアル
JUnitの概要
- JUnitおよび、テスティングフレームワークが主に提供する機能とは何か(3つ)
→ 3ページ - テスティングフレームワークは何をサポートするのか
→ 3ページ - JUnitを利用するにあたり必要なライブラリとその違いは何か(2つ)
→ 6ページ - テストケースとは何か
→ 24-25ページ - 複数のテストケースをまとめたものをなんというか
→ 24-25ページ
第2章 ユニットテスト
テスト技法
- 以下のテスト技法は、どういった内容のテストであるか
- ホワイトボックステスト(27ページ)
- ブラックボックステスト(27ページ)
- 同値クラステスト(28ページ)
- 境界値テスト(28-29ページ)
ユニットテストの概要
- 最近のユニットテストには「品質の向上」以外に優先される目的がある。それは何か
→ 31-32ページ
テストパターン
-
アンチパターン、デザインパターンのように、テストにもパターンがある。
xUnit Test Patternsが提唱する以下のパターンは具体的にどういったテストを表しているか- 自動化されたテスト(33-34ページ)
- 不安定なテスト(34-35ページ)
- ドキュメントとしてのテスト(35-36ページ)
- 問題の局所化(36ページ)
- 不明瞭なテスト(36-37ページ)
- 独立したテスト(37ページ)
-
シングルトンオブジェクトがテストにおいてアンチパターンとなりうる要素とは何か(4つ)
→ 38ページ
第3章 テスティングフレームワーク
テスト用語
- JUnitにおけるテストメソッドの実装の制約は何か(3つ)
→ 40ページ - テスト対象となるクラスやオブジェクトのことをなんというか(略称も合わせて)
→ 43ページ - テスト対象が返す値と、テスト対象が返すべき値をそれぞれなんというか
→ 44ページ - テストを行いやすいメソッドが持つ性質とは何か(3つ)
→ 45ページ - 4フェーズテストについて、どのような概要のフェーズで構成されるか
→ 47ページ - テストにおいて必要とされる全てのデータ、状態を総称してなんというか
→ 47-48ページ
アノテーション
- JUnitが提供する主なアノテーション(6つ)とそれらに設定できる属性はどのようなものか
→ 50-56ページ
第4章 アサーション
Assertクラス
- Assertクラスの所属するパッケージと提供する2つのメソッドはなにか
→ 60-63ページ
Matcher API
- CoreMatchersクラスが所属するパッケージと提供する主なAPI(6つ)は何か
→ 67-70ページ - JUnitMatchersクラスが所属するパッケージと提供する主なAPI(2つ)は何か
→ 70-71ページ - その他、Hamcrestが提供するMatcherクラスにはどのようなものがあるか(8つ)
→ 72ページ - カスタムMatcherを以下の手順で作成せよ(73-79ページ)
- Matcherクラスを作成する
- ファクトリメソッドを作成する
- xxxメソッド(値の検証メソッド)をオーバーライドして実装する
- xxxメソッド(エラーメッセージの定義メソッド)をオーバーライドして実装する
第5章 テストランナー
JUnitの実行
- JUnitで行うユニットテストはどのような流れで実行されるか(3ステップ)
→ 81ページ
テストランナー
- テストランナーとは一体どんな機能か
→ 82ページ - JUnitの提供する主なテストランナーには何があるか(5つ)、また、それぞれについて実装せよ
→ 84-91ページ
第6章 テストのコンテキスト
コンテキスト(構造化)のパターン
- 以下のコンテキストのパターンは具体的に何に着目しているか
- 共通のデータに着目する
→ 99-100ページ - 共通の状態に着目する
→ 101-103ページ - コンストラクタのテストを分ける
→ 103ページ
- 共通のデータに着目する
第7章 テストフィクスチャ
テストフィクスチャとは
- フレッシュフィクスチャとは、どういった戦略か
→ 107ページ - フィクスチャのセットアップ方法について、どのようなものがあるか(4つ)
→ 110-119ページ
第8章 パラメータ化テスト
- パラメータを利用しやすくするためのオブジェクトをなんというか
→ 132ページ - パラメータをフィルタリングするためのクラスおよびそのパッケージは何か
→ 137-138ページ - パラメータ化テストの抱える問題点(2つ)とはなにか
第9章 ルール
ルールとは
- ルールとはどういった場合に使用する機能か、また、どういった特徴があるか
→ 141ページ - ルールの宣言には2種類のアノテーションがある。それぞれの挙動はどのように異なるか
→ 142-143ページ
JUnitの提供するルール
- JUnitの提供するルールにはどのようなものがあるか(8つ)
→ 143-154ページ
カスタムルール
- カスタムルールを作成せよ
→ 154-157ページ - ルールの実行順序を制御したい場合に使用するクラスは何か
→ 158-159ページ
第10章 カテゴリ化テスト
- スローテスト問題への対策にはどういったものがあるか(4つ)
→ 163-165ページ - カテゴリ化テストを以下の手順で実行せよ(165-168ページ)
- カテゴリクラスを作成する
- カテゴリを設定する
- テストスイートクラスを作成する
- カテゴリ化テストを適用する代表的なケースは何か(3つ)
テストダブル
- テストダブルとは何か
→ 181ページ - スタブとモックの違いは何か
→ 186ページ
Mockito
- モックオブジェクトを作成せよ
→ 191-192ページ - スタブメソッドのデフォルトの戻り値は何が設定されるか
→ 192ページ - 以下のスタブメソッドを定義せよ
- 標準的な戻り値のあるスタブメソッド(192-193ページ)
- 例外を送出するスタブメソッド(193ページ)
- void型を返すスタブメソッド(193-194ページ)
- 任意の引数をとるスタブメソッド(194ページ)
- スタブメソッドの実行状態(実行回数など)を検証せよ
→ 194-196ページ - Mockitoのspyメソッドを使用し、スパイオブジェクトを使用したテストを実装せよ
→ 196-198ページ