Junit Assert と AssertEquals の例

Junit Assert とは何ですか?

Assert は、テスト ケースの合格または不合格のステータスを決定するのに役立つメソッドです。Assert メソッドは、java.lang.Object クラスを拡張する org.junit.Assert クラスによって提供されます。

ブール値、Null、同一など、さまざまな種類のアサーションがあります。

JunitはAssertというクラスを提供しており、テストケースの作成やテストの失敗の検出に役立つ一連のアサーションメソッドを提供しています。

Assert メソッドはクラスによって提供されます。 org.junit.アサート 拡張する java.lang.Object とに提供されます。

JUnit アサートメソッド

ブーリアン

ブール条件(真または偽)をテストしたい場合は、次のアサートメソッドを使用できます。

  1. assertTrue(条件)
  2. assertFalse(条件)

ここでの条件はブール値です。

ヌルオブジェクト

オブジェクト/変数の初期値を確認する場合は、次の方法があります。

  1. アサートNull(オブジェクト)
  2. assertNotNull(オブジェクト)

ここのオブジェクトは Java オブジェクト マシン情報の記入> という構文でなければなりません。例えば、 アサートNull(実際の);

同じ

オブジェクトが同一であるか (つまり、同じ Java オブジェクトに対する XNUMX つの参照を比較する)、または異なるかを確認したい場合。

  1. assertSame(期待値、実際)、 次の場合は true を返します 予想される == 実際の
  2. assertNotSame(期待値、実際)

等しいとアサート

2つのオブジェクトの等価性をテストしたい場合は、次のメソッドがあります。

  • assertEquals(期待値、実際値)

次の場合は true を返します。 Expected.equals(actual) trueを返します。

配列が等しいとアサート

配列の等価性をテストしたい場合は、以下の方法があります。

  • assertArrayEquals(期待値、実際値)

配列の長さが同じ場合、有効な値ごとに上記のメソッドを使用する必要があります。 i、以下のようにして確認できます。

  • assertEquals(期待値[i],実際の[i])
  • assertArrayEquals(期待値[i],実際の[i])

失敗メッセージ

アサーションエラーをスローしたい場合は、 失敗() その結果、常に不合格の判定が下されます。

  • 失敗(メッセージ);

追加のアサーションメソッドを持つことができます String パラメータを最初のパラメータとして指定します。 アサーションが失敗した場合、この文字列が失敗メッセージに追加されます。 例えば 失敗(メッセージ) 次のように書くことができます

  • assertEquals(メッセージ、期待される、実際)

JUnit アサートイコール

我が国は残り アサートEquals(a,b) に依存するもの 等しい() オブジェクトクラスのメソッド。

  • ここでは次のように評価されます a.equals( b )。
  • ここでは、テスト対象のクラスを使用して、適切な等価関係が決定されます。
  • クラスがオーバーライドしない場合、 等しい() 方法 オブジェクト クラスの場合、デフォルトの動作が取得されます。 等しい() メソッド、つまりオブジェクトのアイデンティティ。

If ab のようなプリミティブです バイト, int型, booleanなどの場合、 assertEquals(a,b) に対して次の処理が実行されます。

ab 同等のラッパー オブジェクト タイプ (バイト、整数, ブーリアン、など)、そして a.equals( b ) 評価されます。

例: 以下の文字列が同じ値を持つとします。assertTrue を使用してテストしてみます。

String obj1="Junit";
String obj2="Junit";
assertEquals(obj1,obj2);

obj1.equals(obj2) が true を返すため、上記のassert ステートメントは true を返します。

浮動小数点アサーション

浮動小数点型を比較したい場合 (例: or フロート)、追加の必須パラメータが必要です デルタ 浮動小数点比較を行う際の丸め誤差の問題を回避するため。

アサーションは次のように評価されます。

  • Math.abs( 期待値 – 実値 ) <= デルタ

例:

assertEquals(Double価値、もう一つDouble値、0.001)

JUnit アサートの例

以下の例は、次を使用して条件をアサートする方法を示しています。 JUnit メソッドをアサートします。

という名前の簡単なテストクラスを作成しましょう。 Junit4アサーションテスト.java そしてテストランナークラス テストランナー.java.

いくつかの変数と重要な Assert ステートメントを作成します。 JUnit.

この例では、TestRunner.java を使用してテスト クラスを実行します。

ステップ1) junit のすべての重要なアサート ステートメント メソッドをカバーするクラスを作成しましょう。

Junit4アサーションテスト.java

package guru99.junit;		

import static org.junit.Assert.*;				
import org.junit.Test;		


public class Junit4AssertionTest {				

    @Test		
    public void testAssert(){					
        		
        //Variable declaration		
        String string1="Junit";					
        String string2="Junit";					
        String string3="test";					
        String string4="test";					
        String string5=null;					
        int variable1=1;					
        int	variable2=2;					
        int[] airethematicArrary1 = { 1, 2, 3 };					
        int[] airethematicArrary2 = { 1, 2, 3 };					
        		
        //Assert statements		
        assertEquals(string1,string2);					
        assertSame(string3, string4);					
        assertNotSame(string1, string3);					
        assertNotNull(string1);			
        assertNull(string5);			
        assertTrue(variable1<variable2);					
        assertArrayEquals(airethematicArrary1, airethematicArrary2);					
    }		
}		

ステップ2) 上記のクラスを実行するには、テスト ランナー クラスを作成する必要があります。

テストランナー.java

package guru99.junit;		

import org.junit.runner.JUnitCore;		
import org.junit.runner.Result;		
import org.junit.runner.notification.Failure;		

public class TestRunner {				
			public static void main(String[] args) {									
      Result result = JUnitCore.runClasses(Junit4AssertionTest.class);					
			for (Failure failure : result.getFailures()) {							
         System.out.println(failure.toString());					
      }		
      System.out.println("Result=="+result.wasSuccessful());							
   }		
}      

ステップ3) 予想される出力を段階的に分析してみましょう。

すべての Assert ステートメントを XNUMX つずつ検討します。

  1. アサートEquals(文字列1,文字列2);

ここで、オブジェクト クラスの equals メソッドを使用して、string1=” Junit” と string2=” Junit” を比較します。java.lang.Object.equals() メソッドから assertEquals メソッドを置き換えます。

string1.equals(string2)=> は true を返します

したがって、assertEquals(string1,string2) は返されます。 true.

  1. assertSame(string3, string4);

「assertSame()」機能は、XNUMX つのオブジェクトが同じオブジェクトを参照していることを確認します。

string3=”test” と string4=”test” は、string3 と string4 の両方が同じ型であることを意味するため、assertSame(string3, string4) が返されます。 true.

  1. assertNotSame(string1, string3);

「assertNotSame()」機能は、XNUMX つのオブジェクトが同じオブジェクトを参照していないことをチェックします。

string1=”Junit”、string3=”test”はstring1とstring3が異なる型であることを意味するので、assertNotSame(string1, string3)は true.

  1. アサートノットヌル(文字列1);

「assertNotNull()」機能は、オブジェクトが null でないことをチェックします。

string1= “Junit”は非null値なのでassertNotNull(string1)は true.

  1. アサートNull(string5);

「assertNull()」機能は、オブジェクトが null であるかどうかをチェックします。

string5= null は null 値なので、assertNull(string5) が返されます。 true.

  1. assertTrue(変数1

「assertTrue()」機能は、条件が真であることを確認する機能です。

変数 1=1 および変数 2=2 であるため、変数 1 が true.

  1. assertArrayEquals(airethematicArrary1, airethematicArrary2);

「assertArrayEquals()」機能は、期待される配列と結果の配列が等しいことをチェックすることです。 配列のタイプは、int、long、short、char、byte、または java.lang.Object です。

airethematicArrary1 = { 1, 2, 3 } と airethematicArrary2 = { 1, 2, 3 } は両方の配列が等しいことを示しているため、assertArrayEquals(airethematicArrary1, airethematicArrary2) が返されます。 true

の XNUMX つの Assert ステートメントはすべて、 Junit4アサーションテスト.java クラスは true を返すため、テストのアサート クラスを実行すると、成功したテストが返されます。 (以下の出力を参照してください)

ステップ4) Junit4AssertionTest.javaを右クリックし、runAs->をクリックします。JUnit。以下のような出力が表示されます。

JUnit アサートの例

上の出力は、予想どおりに成功したテスト結果を示しています。

まとめ

このチュートリアルでは、によって提供されるすべての重要なタイプのアサーション メソッドを学習しました。 JUnit。また、assert ステートメントの例も見てきました。これは、すべてのアサート ステートメントが true を返す場合、テスト GUI は true の結果を返し、単一のテストが失敗した場合は失敗した結果を返すことを示しています。