駆け出しエンジニアが自主学習の一環でつらつらと…
ご参考までに。
JUnitとは
Javaのユニットテスト(単体テスト)を行うためのフレームワーク
そもそもユニットテストとは
クラスやメソッドを対象としたプログラムを検証するためのテスト
ユニットテストの種類
ホワイトボックステスト
- 対象となる関数やメソッドの内部のロジックについて考慮して、分岐などが正しく機能しているかを確認できるテストケースを設計する
- コード自体を理解しているプログラマ自身がテストを行うことが多い
ブラックボックステスト
- 内部のロジックについては考慮せず、外部仕様のみからテストケースを設計する
- コードそのものへの理解よりかは、そのプログラムが要件を満たしているかどうかを判断できることが求められる
ブラックボックステストには、以下の2種類の技法が存在する
同値分割法
同じような結果をもたらす値を同じグループとし、各グループからテストデータを選択するテスト技法
境界値分析
異なる結果をもたらす値に着目し、境界値の近傍よりテストデータを選択するテスト技法
テストクラスとテストメソッド
テストクラス名は「テスト対象のクラス名+Test」とするのが一般的
// テスト対象クラス(Target.java)
public class Target {
}
// テストクラス(TargetTest.java)
public class TargetTest {
}
テストメソッドの記法
TargetTest.java
@Test
public void Test() throws Exception {
// テスト対象となるクラスやメソッドの検証
}
- publicメソッドとする
- @org.junit.Testを付与する
- 戻り値はvoidとし、引数は持たない
比較検証
実測値(actual value)と期待値(expected value)が一致するか否かを検証するしくみをアサーションと言う
// テストコード
String expected = "xxx";
String actual = yyy.zzz();
assertThat(actual, is(expected));