JUnit 5 の組み込みアサーションは次のカテゴリに分類できます:
は、単一の値の単純な検証を実行するために使用されます。例:
メソッド | 説明 |
---|---|
2 つのオブジェクトまたは 2 つのプリミティブ型が等しいかどうかを判断します | |
2 つのオブジェクトまたは 2 つのプリミティブ型が等しくないかどうかを判断します | assertSame |
assertNotSame | |
assertTrue | |
assertFalse | |
assertNull | |
assertNotNull | |
JTest5 |
#2. 配列アサーション
assertArrayEquals メソッドを使用して、2 つのオブジェクトまたはプリミティブ型の配列が等しいかどうかを判断します。
//不相等抛出异常 @Test public void array() { assertArrayEquals(new int[]{1, 2}, new int[] {1, 2, 3}); }
3. 組み合わせアサーション
assertAll() メソッドは、検証対象として org.junit.jupiter.api.Executable 関数インターフェイスの複数のインスタンスを受け入れますアサーションはラムダ式を通じて簡単に提供できます。
//除非填写的断言都为真, 否则抛出异常 @Test public void all() { assertAll("Math", () -> assertEquals(2, 1 + 1), () -> assertTrue(1 > 5), () -> assertNotNull(null) ); }
2 番目のアサーションが false の場合でも、3 番目のアサーションは実行されます。つまり、assertAll() メソッド b に入力されたすべてのアサーションが実行されることに注意してください。
4. 例外アサーション##JUnit 4 の時代でも、メソッドの異常状況をテストしたい場合、@Rule アノテーションを付けた ExpectedException 変数を使用するのは依然として面倒です。 JUnit5 は、関数型プログラミングで使用できる新しいアサーション メソッド Assertions.assertThrows() を提供します。
@Test public void exceptionTest() { ArithmeticException exception = Assertions.assertThrows( //当没有异常时, 扔出断言异常 ArithmeticException.class, () -> System.out.println(5/ 2)); }
JUnit5 は、テスト メソッドのタイムアウトを設定するための Assertions.assertTimeout() も提供します。
@Test@DisplayName("超时测试")public void timeoutTest() { //如果测试方法执行时间超过设置的时间将会抛出异常 Assertions.assertTimeout(Duration.ofMillis(1000), () -> Thread.sleep(5000)); }
fail メソッドを使用して直接テストを失敗させます。このアサーションの後続のコードは実行されません
@Test public void shouldFail() { System.out.println("123456"); fail("This should fail"); System.out.println("888888"); }
以上がSpringBoot アサーション メカニズムの原理は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。