【Java】チートシート【junit】
基本のテスト
// 期待値と実測値が同じことを確認
// Objectの確認
String expected = "aaa";
String actual = "aaa";
assertEquals(expected, actual);
// 配列の確認
String[] expectedArray = {"aaa", "bbb"};
String[] actualArray = {"aaa", "bbb"};
assertArrayEquals(expectedArray, actualArray);
// Iterableの確認
List<String> expectedList = new ArrayList();
List<String> actualList = new ArrayList();
assertIterableEquals(expectedList, actualList);
真偽値のテスト
// true/falseの確認
// trueであることを確認
assertTrue(50 < 100);
// falseであることを確認
assertFalse(50 > 100);
オブジェクトのテスト
// オブジェクト参照の確認
Object a = new Object();
Object aCopy = a;
Object b = new Object();
// オブジェクト参照先が同じ
assertSame(a, aCopy);
// オブジェクト参照先が異なる
assertNotSame(a, b);
Nullのテスト
// Nullの確認
String strNull = null;
String strBlank = "";
// Nullであることを確認
assertNull(strNull);
// Nullでないことを確認
assertNotNull(strBlank);
Exceptionのテスト
@Test
void test5() {
String str = null;
assertThrows(NullPointerException.class, () -> exceptionTest(str));
}
boolean exceptionTest(String str) throws Exception {
String check = "test";
return str.equals(check);
}
テストの前後に処理をしたい
// テストクラスの実行前に一度だけ処理
// staticにする必要あり
@BeforeAll
static void beforeAll() {
System.out.println("---beforeAll---");
}
// テストクラスの実行後に一度だけ処理
// staticにする必要あり
@AfterAll
static void afterAll() {
System.out.println("---afterAll---");
}
@Test
void test() {
System.out.println("---testケース実行---");
}
// 各テストの実行前に処理
@BeforeEach
void beforeEach() {
System.out.println("---beforeEach---");
}
// 各テストの実行後に処理
@AfterEach
void afterEach() {
System.out.println("---afterEach---");
}
実行結果
---beforeAll---
---beforeEach---
---testケース実行---
---afterEach---
---afterAll---
タイムアウトのテスト
// 1秒で処理が終わらなかったらテスト失敗。処理完了まで待つ
assertTimeout(Duration.ofSeconds(1), () -> timeoutTest());
// 1秒で処理が終わらなかったらテスト失敗。処理は強制終了
assertTimeoutPreemptively(Duration.ofSeconds(1), () -> timeoutTest());