what is junit test fixture
このチュートリアルでは、概念を簡単に理解するために、JUnitテストフィクスチャを簡単なJUnitテストフィクスチャの例とともに使用する時期、理由、および方法について説明します。
私たちは学びます–
- テストフィクスチャを使用する必要があるのはいつ、なぜですか?
- JUnitテストのコードでそれを使用するためのアプローチは何ですか?
- 「テストフィクスチャ」という用語を理解するためのいくつかの例は、@ Before、@ After、@ BeforeClass、@ AfterClass、@ TestなどのJUnit4ライフサイクルアノテーションのヘッドスタートと並行してカスケードされています。
=> ここですべてのJUnitチュートリアルを確認してください。
学習内容:
JUnitテストフィクスチャ
JUnitクラスに複数のテストケースがある場合、すべてのテストケースで使用される共通のオブジェクトが存在する可能性があります。この場合、すべてのテストケースに共通する可能性のある特定の機能が存在する可能性があります。
これは、テストオブジェクトをすべてのテストケースで共有する必要があるという意味ではありません。 1つのテストで行われたオブジェクトへの変更は、すべてのテストで共有する必要はありません。これらのテストは独立しており、優先順位セットに従って異なる順序で実行される可能性があるためです。
sqlデータベースインタビューの質問と回答
の全体的な理解 「テストフィクスチャ」という用語 は、コード内の固定状態、または前提条件として使用されるコード内の一連の固定ステップと、すべてのテストの事後条件として使用される他のいくつかのステップセットです。
したがって、言い換えると、すべてのテストで繰り返されるステートメントのセットを特定し、それによって、テストメソッドを実行するための固定環境を設定してみます。
ザ・ 目的 Test Fixtureを使用することの利点は、すべてのテストケースに共通のコードの重複を排除することです。
ps4用の最高のバーチャルリアリティヘッドセット
JUnitテストでのテストフィクスチャの実際の実装を理解してみましょう。
setUp()メソッド
- 特定のオブジェクト(文字列、整数、ArrayList、またはその他のオブジェクト)の初期化が必要なテストがあります。メソッドを作成できます public void setUp() ここで、共通オブジェクトのインスタンス変数を宣言できます。このsetUp()メソッドをアノテーションの下に配置します @前 。 @Beforeアノテーションを使用すると、フレームワークはすべてのテストケースの実行前にメソッドsetUp()を実行します。
- setUp()メソッドは、事前定義された資格情報を使用してアプリケーションにログインした後のテストケースを実行する最初のステップとして、特定のURLでブラウザーを起動する場合にも使用できます。
tearDown()メソッド
- テストで外部リソースを割り当てた場合は、リソースも解放することを忘れないでください。テストケースの実行が完了した後、オブジェクトをクリーンアップするために、teardown()メソッドを追加できます。 setUp()メソッドと同様の方法で、メソッドを追加します public void teardown() 下 @After 注釈。 JUnitフレームワークは、各テストケースが実行された後、@ Afterの下のメソッドが確実に実行されることを確認します。テストで使用されたオブジェクトは、teardown()メソッドでNULLに設定して、テストからのガベージを収集する必要があります。
- オブジェクトのクリーンアップのもう1つの適切な候補は、テストケースの完了後に動作中のブラウザを強制終了し、使用済みオブジェクトを破棄してメモリを解放することです。
- メソッド名setUp()およびtearDown()は、単なるユーザー定義の名前です。任意のメソッド名を設定できます。テストの実行順序を決定するのは、メソッドで使用されるアノテーションにすぎません。
JUnitテストフィクスチャの例
このセクションでは、JUnit 4テストの2つの例を見て、さまざまなライフサイクルアノテーション@ Before、@ After、@ BeforeClass、@ AfterClass、のシーケンスとともに、コードでテストフィクスチャのアプローチを使用する方法を理解しようとします。および@Test。
もちろん、注釈についての個別のチュートリアルがあり、これらが何であるか、および各注釈がどのように機能するかを明確にします。今のところ、コードでのテストフィクスチャの使用法の理解に固執しましょう。
JUnit 4テスト–例1
この例では、3つのテストケースを持つクラスにテストフィクスチャがあります。 @Beforeアノテーションを使用したsetUp()メソッドと@Afterアノテーションを使用したtearDown()メソッド。
コード:
package demo.tests; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Test; public class JUnitProgram { @Before public void setUp() { System.out.println('_______________________________________________________
'); System.out.println('This is the setUp() method that runs before each testcase'); } @Test public void test_JUnit1() { System.out.println('This is the testcase test_JUnit1() in this class'); } @Test public void test_JUnit2() { System.out.println('This is the testcase test_JUnit2() in this class'); } @Test public void test_JUnit3() { System.out.println('This is the testcase test_JUnit3() in this class'); } @After public void tearDown() { System.out.println('This is the tearDown() method that runs after each testcase'); System.out.println('_______________________________________________________
'); } }
結果のコンソールウィンドウは次のようになります。
コンソールウィンドウでは、すべてのテストを実行する前にsetUp()メソッドが実行され、各テストが完了した後に、tearDown()メソッドが実行されることがわかります。
したがって、すべてのテストメソッドのアノテーションごとの実行シーケンスは次のとおりです。
- @前
- @テスト
- @After
ただし、ここでのテストは順番に実行されていることを忘れないでください。つまり、test_JUnit1()、test_JUnit2()、test_JUnit3()であり、テストにシーケンスが定義されていないため、任意の順序で実行できます。各テストは、他のテストから分離されています。
JUnit 4テスト–例2
ここでは、クラスで初めて1回実行されるメソッドと、クラスのすべてのテストが実行された後に1回実行される別のメソッドを作成する方法を簡単に見てみましょう。
コード:
package demo.tests; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Test; public class JUnitProgram { @BeforeClass public static void preClass() { System.out.println('This is the preClass() method that runs one time before the class'); } @Before public void setUp() { System.out.println('_______________________________________________________
'); System.out.println('This is the setUp() method that runs before each testcase'); } @Test public void test_JUnit1() { System.out.println('This is the testcase test_JUnit1() in this class'); } @Test public void test_JUnit2() { System.out.println('This is the testcase test_JUnit2() in this class'); } @Test public void test_JUnit3() { System.out.println('This is the testcase test_JUnit3() in this class'); } @After public void tearDown() { System.out.println('This is the tearDown() method that runs after each testcase'); System.out.println('_______________________________________________________
'); } @AfterClass public static void postClass() { System.out.println('This is the postClass() method that runs one time after the class'); } }
@BeforeClassアノテーションの下にpreClass()メソッドを追加しました。このメソッドは、テストが実行される前に、クラスに対して1回だけ実行されます。 @Beforeのメソッドが実行される前でも実行されます。
@AfterClassアノテーションの下のpostClass()メソッドは、@ Afterの下のテストを含むすべてのテストが実行されて完了すると、最後に1回実行されます。
テスト実行の順序は次のとおりです。
- @BeforeClass
- @前
- @テスト
- @After
- @放課後
@BeforeClassおよび@AfterClassの下のメソッドは、通常、クラスによって共有されます。そのため、メソッドが次のように宣言されていない場合 静的 それからそれは与える 初期化エラー テストの実行時。
char *をintc ++に変換します
以下のスクリーンショットを参照してください。@ BeforeClassアノテーションの下にpreClass()メソッドを設定していません。 静的 そのため、テストは実行時にエラーになりました。
メソッドを静的としてマークすると除去できる初期化エラーを示す結果が表示される場合があります。 @AfterClassアノテーションの下のメソッドpostClass()についても同じことが言えます。
結論
私たちは、実装することによって従うべき良いプログラミング慣行のコンテキストを設定しようとしました テストフィクスチャ ライフサイクルアノテーションの使用法と実行順序のアプローチと基本的な理解。
次のチュートリアルでは、 JUnitテストを実行するさまざまな方法 Eclipseで。したがって、JUnitのより興味深い側面に進むにつれて、シリーズに注目してください。
=> JUnitトレーニングチュートリアルのA〜Zをここで確認するには、ここをクリックしてください。