ホームページ > Java > &#&チュートリアル > SpringBoot アサーション メカニズムの原理は何ですか?

SpringBoot アサーション メカニズムの原理は何ですか?

王林
リリース: 2023-05-14 12:28:11
転載
1501 人が閲覧しました

JUnit 5 の組み込みアサーションは次のカテゴリに分類できます:

1. 単純なアサーション

は、単一の値の単純な検証を実行するために使用されます。例:

##assertEquals 2 つのオブジェクトまたは 2 つのプリミティブ型が等しいかどうかを判断します##assertNotEquals2 つのオブジェクト参照が同じオブジェクトを指しているかどうかを判断します2 つのオブジェクト参照が異なるオブジェクトを指しているかどうかを判断します 指定されたブール値が true かどうかを判断します指定されたブール値が true であるかどうかを判断しますis false 指定されたオブジェクト参照が null かどうかを判断します判定指定されたオブジェクト参照が null ではありませんJTest5
package com.limi.springboottest2;
import org.junit.jupiter.api.*;
import org.springframework.boot.test.context.SpringBootTest;
import static org.junit.jupiter.api.Assertions.*;
@SpringBootTest
public class JTest5 {
    @Test
    public void simple() {
        assertEquals(3, 1 + 2, "simple math");
        System.out.println(1);
        assertNotEquals(3, 1 + 1);
        System.out.println(2);
        assertNotSame(new Object(), new Object());
        System.out.println(3);
        Object obj = new Object();
        assertSame(obj, obj);
        System.out.println(4);
        assertFalse(3 > 2);
        System.out.println(5);
        assertTrue(1 < 2);
        System.out.println(6);
        assertNull(null);
        System.out.println(7);
        assertNotNull(new Object());
        System.out.println(8);
    }
}
ログイン後にコピー
アサーションが false と判断された場合、プログラムは例外をスローした後すぐに終了します。
メソッド 説明
2 つのオブジェクトまたは 2 つのプリミティブ型が等しくないかどうかを判断します assertSame
assertNotSame
assertTrue
assertFalse
assertNull
assertNotNull

#2. 配列アサーション

assertArrayEquals メソッドを使用して、2 つのオブジェクトまたはプリミティブ型の配列が等しいかどうかを判断します。 SpringBoot アサーション メカニズムの原理は何ですか?

	//不相等抛出异常
    @Test
    public void array() {
        assertArrayEquals(new int[]{1, 2}, new int[] {1, 2, 3});
    }
ログイン後にコピー

3. 組み合わせアサーション

assertAll() メソッドは、検証対象として org.junit.jupiter.api.Executable 関数インターフェイスの複数のインスタンスを受け入れますアサーションはラムダ式を通じて簡単に提供できます。 SpringBoot アサーション メカニズムの原理は何ですか?

	//除非填写的断言都为真, 否则抛出异常
    @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() を提供します。 SpringBoot アサーション メカニズムの原理は何ですか?

    @Test
    public void exceptionTest() {
        ArithmeticException exception = Assertions.assertThrows(
                //当没有异常时, 扔出断言异常
                ArithmeticException.class, () -> System.out.println(5/ 2));
    }
ログイン後にコピー

5. タイムアウト アサーション

JUnit5 は、テスト メソッドのタイムアウトを設定するための Assertions.assertTimeout() も提供します。

    @Test@DisplayName("超时测试")public void timeoutTest() {
        //如果测试方法执行时间超过设置的时间将会抛出异常    
        Assertions.assertTimeout(Duration.ofMillis(1000), () -> Thread.sleep(5000));
    }
ログイン後にコピー

SpringBoot アサーション メカニズムの原理は何ですか?

6. 高速失敗

fail メソッドを使用して直接テストを失敗させます。このアサーションの後続のコードは実行されません

    @Test
    public void shouldFail() {
        System.out.println("123456");
        fail("This should fail");
        System.out.println("888888");
    }
ログイン後にコピー

SpringBoot アサーション メカニズムの原理は何ですか?

以上がSpringBoot アサーション メカニズムの原理は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート