introduction junit framework
このチュートリアルでは、JUnitとSeleniumスクリプトでのその使用法について説明します。これは私たちのチュートリアル#11です 包括的なSeleniumチュートリアルシリーズ。
基本的に、JUnitはオープンソースの単体テストツールであり、コードの大小のユニットをテストするために使用されます。 JUnitテストを実行するために、クラスオブジェクトを作成したり、mainメソッドを定義したりする必要はありません。 JUnit テスト結果を評価するために使用されるアサーションライブラリを提供します。 JUnitのアノテーションは、テストメソッドを実行するために使用されます。 JUnitは、複数のテストケースを持つオートメーションスイートを実行するためにも使用されます。
学習内容:
JavaプロジェクトにJUnitライブラリを追加する
まず、JavaプロジェクトにJUnitライブラリを追加する方法を学びます。
ステップ1: Javaプロジェクト->ビルドパス->ビルドパスの構成を右クリックします
ステップ2: (ライブラリ)-> (ライブラリの追加)をクリックします

ステップ3: Junitをクリックします。

ステップ4: Junit4-> Finishを選択します

ステップ5: (OK)をクリックします。

データドリブンフレームワーク、キーワードドリブンフレームワーク、ハイブリッドフレームワークなど、JUnitツールをテストランナーとして使用し、バッチの実行とレポートの開始に役立つフレームワークが多数あります。
Seleniumスクリプトで使用されるJUnitアノテーション
Junitには多くの注釈があります。ここでは、Seleniumスクリプトとフレームワークで非常に頻繁に使用されるいくつかのアノテーションについて説明しました。
#1。 @テスト
@テスト アノテーションは、JUnitテストを実行するために使用されます。
例 :
@Test public void junitTest() { System.out.println('Running Junit test'); Assert.assertEquals(1,1); } JUnitテストを実行する方法:
実行に移動-> JUnitテストとして実行
#2。 @前:
@前 注釈は、各テストの前に特定のテストを実行するために使用されます。
public class Junttest { @Before public void beforeTest(){ System.out.println('Running before test'); } @Test public void junitTest(){ System.out.println('Running Junit test'); } } 出力:
テスト前に実行
JUnitテストの実行
2つのjunitテスト方法を使用したbeforeアノテーションの例。
public class Junttest { @Before public void beforeTest(){ System.out.println('Running before test'); } @Test public void junitTest(){ System.out.println('Running Junit test'); } @Test public void secondJunitTest(){ System.out.println('Running second Junit test'); } } 出力:
テスト前に実行
JUnitテストの実行
テスト前に実行
2番目のJUnitテストの実行
JUnitテストメソッドを実行する前にbeforeTestメソッドが実行されます。同様に、secondJuntiTestを再度実行する前に、beforeTestメソッドが実行され、上記のような出力が生成されます。
#3。 @BeforeClass
このメソッドは、すべてのテストを実行する前に1回実行されます。メソッドは静的メソッドである必要があります。プロパティファイル、データベースなどの初期化は、beforeClassメソッドで行われます。
public class Junttest { @BeforeClass public static void beforeClassTest(){ System.out.println('Executed before class method'); } @Test public void junitTest(){ System.out.println('Running Junit test'); } @Test public void secondJunitTest(){ System.out.println('Running second Junit test'); } } 出力:
クラスメソッドの前に実行
JUnitテストの実行
2番目のJUnitテストの実行
#4。 @After
このメソッドは、各テストの後に実行されます。
Linuxで2つのファイルを比較する方法
public class Junttest { @Test public void junitTest(){ System.out.println('Running Junit test'); } @After public void afterTest(){ System.out.println('Running after method'); } } 出力:
JUnitテストの実行
メソッドの後に実行
#5。 @放課後
@BeforeClassと同様に、@ AfterClassは、すべてのテストメソッドを実行した後に1回実行されます。 @BeforeClassメソッドと同様に、@ AfterClassメソッドは静的メソッドである必要があります。
public class Junttest { @Test public void junitTest(){ System.out.println('Running Junit test'); } @Test public void secondJunitTest(){ System.out.println('Running second Junit test'); } @AfterClass Public static void afterClassTest(){ System.out.println('Running afterclass method'); } } 出力:
JUnitテストの実行
2番目のJUnitテストの実行
アフタークラスメソッドの実行
JUnitアサーションは、特定の条件を検証するために使用され、条件が満たされない場合はプログラムの実行を停止します。
#6。パラメータ化されたJUnitクラス:
パラメータ化されたクラスは、複数のデータセットで同じシナリオを実行するために使用されます。
以下は、JUnitテストで複数のパラメーターを渡す例です。
@Parametersアノテーションタグは、複数のデータを渡すために使用されます。ここでは、2 * 2次元配列を取得し、データを次のように視覚化できます。

@RunWith(Parameterized.class) public class Junttest { public String name; public int age; public Junttest(String name,int age){ this.name=name; this.age=age; } @Test public void testMethod(){ System.out.println('Name is: '+name +' and age is: '+age); } @Parameters public static Collection parameter(){ Object()() pData=new Object(2)(2); pData(0)(0)='Tom'; pData(0)(1)=30; pData(1)(0)='Harry'; pData(1)(1)=40; return Arrays.asList(pData); } } JUnitアサーション
JUnit assertEquals :これは、2つの値が等しいかどうかをチェックし、両方の値が等しくない場合はアサーションが失敗します。
これは、Boolean、int、String、float、long、charなどを比較します。
構文 :
Assert.assertEqual( '例外値'、 '実際の値');
例 :
Assert.assertEqual( 'ABC'、 'ABC'); //両方の文字列が等しく、アサーションが渡されます。
Assert.assertEqual( 'ABC'、 'DEF'); //両方の文字列が等しくないため、アサーションは失敗します。
Assert.assertEqual( '文字列が等しくない'、 'ABC'、 'DEF'); //等しい条件が満たされない場合、メッセージがスローされます。
以下は、セレンでのJUnitアサーションの使用例です。
String username=driver.findElement(By.id(“username”)).getText(); String password=driver.findElement(By.id(“password”)).getText(); Assert.assertEqual(“Mismatch in both the string”, username, password); 上記の例では、両方の文字列が等しくないため、アサーションは失敗します。 1つはユーザー名フィールドのテキストで、もう1つはパスワードフィールドのテキストです。
JUnit assertTrue :条件がtrueの場合はtrueを返し、条件がfalseの場合はアサーションは失敗します。
Assert.assertTrue( 'メッセージ'、条件);
Assert.assertTrue( '両方の文字列が等しくありません'、( 'HelloWorld')。equals( 'HelloWorld'));
ここでは、両方の文字列が一致するとアサーションが渡されます。アサーションが失敗した場合、メッセージを出力します。
JUnit assertFalse :条件がfalseの場合はtrueを返し、条件がtrueの場合はアサーションは失敗します。
Assert.assertFalse( 'メッセージ'、条件);
Assert.assertFalse( '両方の文字列が等しい'、( 'Hello')。equals( 'HelloWorld'));
条件がfalseであるため、アサーションエラーは発生しません。
結論:
プログラマーのほとんどは、Junitを使用しています。これは、JUnitが簡単で、テストにそれほど労力をかけないためです。単純な緑または赤のバーに、テストの実際の結果が表示されます。 Junitは、独自のライブラリとアノテーションのセットを備えているため、作業が楽になります。ここでは、セレンスクリプトとフレームワークで使用される一般的に使用されるアノテーションについても説明しました。
フレームワークとJUnitアノテーションの使用についての詳細は、JUnitを使用したフレームワーク設計専用の次のチュートリアルで説明します。このチュートリアルは、JUnitを使用してフレームワークを設計するのに役立ちます。
次のチュートリアル#12 : 次のチュートリアルでは、TestNG、その機能、およびそのアプリケーションについてすべて説明します。 TestNGは、開発者とテスターの両方のメリットを活用するように設計された高度なフレームワークです。
推奨読書
- Cucumber Seleniumチュートリアル:Cucumber Java SeleniumWebDriverの統合
- Seleniumフレームワークの作成とExcelからのテストデータへのアクセス-Seleniumチュートリアル#21
- 最初のWebDriverスクリプトの実装– Selenium WebDriverチュートリアル#10
- Selenium WebDriverの概要– Seleniumチュートリアル#8
- 初心者向けの詳細なEclipseチュートリアル
- Seleniumスクリプトを作成するためのTestNGフレームワークの使用方法-TestNGSeleniumチュートリアル#12
- 効率的なSeleniumスクリプティングとトラブルシューティングシナリオ– Seleniumチュートリアル#27
- ログを使用したSeleniumスクリプトのデバッグ(Log4jチュートリアル)– Seleniumチュートリアル#26