【Eclipse】JUnitでよく使うアサーション・アノテーション@ まとめ
今回はJUnitを学習するにあたって勉強した、アサーション等をまとめることにします。
代表的なアサーションメソッド
assertEquals
2つの値を比較し、同じ場合はテスト成功
assertEquals(a, b);
assertEquals(a, b, "失敗の場合のメッセージ");
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
class SimpleCalculatorTest extends SimpleCalculator {
@Test
void testCompare() {
// 2つの値
int expectedNum = 4;
int actualNum = 3;
// 比較
assertEquals(expectedNum, actualNum, "expectedNum:" + expectedNum + ", actualNum:" + actualNum + "なので違います。");
}
}
assertTrue, assertFalse
boolean flag = true;
assertTrue(flag);
assertTrue(flag, "失敗の場合のメッセージ");
assertAll
int result = 10;
// 複数のアサーションをまとめて検証
assertAll("失敗時のメッセージ",
() -> assertEquals(10, result),
() -> assertTrue(result > 0),
() -> assertFalse(result < 0)
);
assertThrows
・Java側
public float div(int x, int y) {
if (y == 0) throw new IllegalArgumentException("0で除算はできません。");
return (float)x / y;
}
・JUnit側
@Test
void testDivException02() {
// オブジェクト生成
SimpleCalculator simCal = new SimpleCalculator();
// ラムダ式で、0で除算する。
assertThrows(IllegalArgumentException.class, () -> simCal.div(9, 0));
}
代表的なアノテーション@
@Test
@DisplayName
@DisplayName("クラス1")
class SimpleCalculatorTest extends SimpleCalculator {
@Test
@DisplayName("テストケース1-1-1")
void testDivException01() {
// オブジェクト生成
SimpleCalculator simCal = new SimpleCalculator();
// ラムダ式で、0で除算する。
assertThrows(IllegalArgumentException.class, () -> simCal.div(9, 0));
}
@Test
@DisplayName("テストケース1-1-2")
void testDivException02() {
// オブジェクト生成
SimpleCalculator simCal = new SimpleCalculator();
// ラムダ式で、0で除算する。
assertThrows(IllegalArgumentException.class, () -> simCal.div(9, 0));
}
}
@Nested
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
@Nested
@DisplayName("クラス1")
class SimpleCalculatorTest extends SimpleCalculator {
@Test
@DisplayName("テストケース1-1-1")
void testDivException01() {
// オブジェクト生成
SimpleCalculator simCal = new SimpleCalculator();
// ラムダ式で、0で除算する。
assertThrows(IllegalArgumentException.class, () -> simCal.div(9, 0));
}
@Test
@DisplayName("テストケース1-1-2")
void testDivException02() {
// オブジェクト生成
SimpleCalculator simCal = new SimpleCalculator();
// ラムダ式で、0で除算する。
assertThrows(IllegalArgumentException.class, () -> simCal.div(9, 0));
}
}
@Nested
@DisplayName("クラス2")
class SimpleTest02 extends SimpleCalculator {
@Test
@DisplayName("テストケース1-1-3")
void testDivException03() {
// オブジェクト生成
SimpleCalculator simCal = new SimpleCalculator();
// ラムダ式で、0で除算する。
assertThrows(IllegalArgumentException.class, () -> simCal.div(9, 0));
}
@Test
@DisplayName("テストケース1-1-4")
void testDivException04() {
// オブジェクト生成
SimpleCalculator simCal = new SimpleCalculator();
// ラムダ式で、0で除算する。
assertThrows(IllegalArgumentException.class, () -> simCal.div(9, 0));
}
}
@Tag
@Test
@Tag("タグ1のテスト")
void testDivException01() {
System.out.println("タグ1の処理です。");
}
@Test
@Tag("タグ2のテスト")
void testDivException02() {
System.out.println("タグ2の処理です。");
}
@BeforeEach
@BeforeEach
public void init() {
System.out.println("@BeforeEachの処理は、最初に呼ばれます。");
}
@Test
void testDivException01() {
System.out.println("タグ1の処理です。");
}
@Test
void testDivException02() {
System.out.println("タグ2の処理です。");
}
@ParameterizedTest
@CsvSource
@ParameterizedTest
@ValueSource(ints = {1, 2, 3, 4, 5})
void test(int value) {
System.out.println(value);
}
@ParameterizedTest
@CsvSource({ "John, 25", "Jane, 30", "Tom, 35" })
void test(String name, int age) {
System.out.println(name + "は"+ age + "歳です。");
}
コメント
0 件のコメント :
コメントを投稿