序文
自動テストスクリプトの実装では、我々はテストスクリプトの実行が完了したが、期待される結果と一致している後に自動的に実際の結果を決定する必要があり、プログラムの前にアサーションを記述する必要上、この時間は、それが現在のプログラムの実行後に正常であるか否かを判断するために実行されます。
二つのタイプに分けについてTestNGのアサート:
- ソフトアサーション
- ハードアサーション
ハードアサーション
でTestNGのでは、Assertクラスが主張するのは難しいです、スクリプトアサーションが失敗した場合、コードが実行されることはありませんすぐ後ろに実行を停止し、によって特徴づけられるハード呼ばアサート複数の静的メソッドがあります。
TestNGのは、主に、データ・オブジェクトおよびコレクション、およびその他の操作の種類を一致、複数のアサート*()メソッドで提供されます。
たとえば、次のように:
輸入org.testng.Assert。 輸入org.testng.annotations.Test; パブリック クラスTestAssert { @Test 公共 ボイド testAssert()がスロー例外{ Assert.assertEquals( 4、2 * 2 )。 Assert.assertEquals( 5,1 + 9 )。 } }
上記のコードを実行すると、以下の結果:
以上のことから、それは期待のassertEqualsで見ることができ、実際の不平等と、実際の結果と予想される結果が等しくない場合、それは例外がアサート投げると内容が表示されます、このようなエラーがスローされ、より簡単にエラーの原因と特定のビジネス・ロジックを探します。
- 一般的なアサーションメソッドを主張し、次のように説明しました:
- いるassertTrue:かどうかをTrueに決定します。
- assertFalse:偽かどうかを判断します。
- assertSame:アドレスは、同じ参照番号であるかどうかを判断します。
- assertNotSame:参照されたアドレスが同じでないかどうかを判断します。
- assertNull:判断がnullです。
- assertNotNull:nullでないかどうかを判断します。
- assertEquals:同じかどうかを決定する、Object型の目的を達成するために必要とhaseCodeの方法に等しいです。
- assertNotEquals:等しいか否かを判定する。
- assertEqualsNoOrder:順序を無視するには、同じか否かが判断されます
ソフトアサーション
TestNGのに実行した場合、アサーションの失敗によって特徴付けられるSoftAssertクラスソフトアサーションで、実行を停止しませんが、それは他のアサーションの動作に影響を与えない、この主張に他の文やアサーションを実行していきます。
手順:assertAll()がSoftAssert.javaと呼ばれるソフトタイプのアサーションの背後アサーションクラスの最終試験に配置する必要があり、このクラスは、ソフトアサーション関連するインスタンスメソッドを呼び出す前に、オブジェクトのインスタンスを作成する必要があります。
たとえば、次のように:
インポートorg.testng.annotations.Test; インポートorg.testng.asserts.SoftAssert; パブリック クラスTestSoftAssert { @Test 公共 無効testSoftAssert(){ System.out.printlnは(「スクリプトの実行開始.......... ........ " ); // SoftAssertインスタンス化 アサーション= SoftAssertを新しい新SoftAssert(); assertion.assertEqualsを( 5 ,. 6、"我々は同じ大きさではなかった" ); System.out.printlnは( "スクリプトの実行最後..................「); System.out.printlnは(」私は"これが実行されないことを、見ていた); // これは最終的に置く必要があります、何も言わないように assertion.assertAll(); } }
上記のコードを実行すると、以下の結果:
それは,,他の文は、あるハードがアサートされ、ここであれば、のバック実行することによって、あなたは、コードの等しい5と6行のアサート後に見ることができることが判明した「スクリプトの実行が終了した」そして私がし、見るために待っています」これが実行されることはありません」は出力されません
つまり、これら2つのステートメントは出力されません。これはSoftAssertの利点である、ここでも、最後assertAll()メソッドを呼び出してください。