TestNG-基本的な注釈
JUnit 3でテストメソッドを示す従来の方法は、名前の前にtestを付けることです。これは、クラス内の特定のメソッドに特別な意味を持つものとしてタグを付けるための非常に効果的なメソッドですが、名前付けはあまり適切にスケーリングされず(異なるフレームワークにタグを追加したい場合はどうなりますか?)、かなり柔軟性がありません(追加のパラメーターをテストフレームワークに渡したいですか?)
JDK 5ではJava言語に注釈が正式に追加され、TestNGは注釈を使用してテストクラスに注釈を付けることを選択しました。
TestNGがサポートするアノテーションのリストは次のとおりです-
シニア番号 | 注釈と説明 |
---|---|
1 | @BeforeSuite 注釈付きメソッドは、このスイートのすべてのテストが実行される前に1回だけ実行されます。 |
2 | @AfterSuite 注釈付きメソッドは、このスイートのすべてのテストが実行された後に1回だけ実行されます。 |
3 | @BeforeClass 注釈付きメソッドは、現在のクラスの最初のテストメソッドが呼び出される前に1回だけ実行されます。 |
4 | @AfterClass 注釈付きメソッドは、現在のクラスのすべてのテストメソッドが実行された後に1回だけ実行されます。 |
5 | @BeforeTest 注釈付きメソッドは、<test>タグ内のクラスに属するテストメソッドが実行される前に実行されます。 |
6 | @AfterTest 注釈付きメソッドは、<test>タグ内のクラスに属するすべてのテストメソッドが実行された後に実行されます。 |
7 | @BeforeGroups この構成方法が以前に実行するグループのリスト。このメソッドは、これらのグループのいずれかに属する最初のテストメソッドが呼び出される直前に実行されることが保証されています。 |
8 | @AfterGroups この構成メソッドが実行されるグループのリスト。このメソッドは、これらのグループのいずれかに属する最後のテストメソッドが呼び出された直後に実行されることが保証されています。 |
9 | @BeforeMethod 注釈付きメソッドは、各テストメソッドの前に実行されます。 |
10 | @AfterMethod 注釈付きメソッドは、各テストメソッドの後に実行されます。 |
11 | @DataProvider テストメソッドのデータを提供するものとしてメソッドをマークします。注釈付きメソッドはObject [] []を返す必要があります。ここで、各Object []にテストメソッドのパラメータリストを割り当てることができます。このDataProviderからデータを受信する@Testメソッドは、このアノテーションの名前と同じdataProvider名を使用する必要があります。 |
12 | @Factory
TestNGによってテストクラスとして使用されるオブジェクトを返すファクトリとしてメソッドをマークします。メソッドはObject []を返す必要があります。 |
13 | @Listeners テストクラスのリスナーを定義します。 |
14 | @Parameters @Testメソッドにパラメーターを渡す方法について説明します。 |
15 | @Test クラスまたはメソッドをテストの一部としてマークします。 |
アノテーションを使用する利点
以下は、注釈を使用する利点の一部です-
TestNGは、アノテーションを検索することにより、関心のあるメソッドを識別します。したがって、メソッド名はパターンや形式に制限されません。
追加のパラメータを注釈に渡すことができます。
注釈は強く型付けされているため、コンパイラーは間違いがあればすぐにフラグを立てます。
テストクラスは何も拡張する必要がなくなりました(JUnit 3のTestCaseなど)。