ファクトリーアノテーションを使用すると、テストケースのインスタンスを複数生成し、異なるデータセットやパラメータで実行することができます。これは、同じテストメソッドを複数回実行する必要がある場合や、パラメータ化されたテストケースを作成する必要がある場合に特に便利です。
ファクトリーアノテーションを使用するには、次の手順に従います。
- テストクラス内のメソッドに @Factory アノテーションを追加します。
- @Factory アノテーションが付いたメソッドは、テストケースのインスタンスを生成するためのファクトリーメソッドとなります。このメソッドは、テストケースのパラメータやデータセットを受け取り、それに基づいてテストケースのインスタンスを生成します。
- ファクトリーメソッドは、テストケースインスタンスを返す必要があります。
以下に、ファクトリーアノテーションの使用例を示します。
import org.testng.annotations.Factory;
import org.testng.annotations.Test;
public class MyTestFactory {
private String param;
public MyTestFactory(String param) {
this.param = param;
}
@Factory
public Object[] createTestInstances() {
Object[] result = new Object[3];
for (int i = 0; i < 3; i++) {
result[i] = new MyTestFactory("Test " + i);
}
return result;
}
@Test
public void testMethod() {
System.out.println("Test method executed with parameter: " + param);
}
}
上記の例では、MyTestFactory クラスがファクトリーメソッド createTestInstances()
を持っています。このメソッドは、3つのテストケースインスタンスを生成し、それぞれに異なるパラメータを設定しています。
テストクラスの testMethod()
は、ファクトリーメソッドから生成されたテストケースインスタンスで実行されます。このメソッドは、実際のテストの内容を記述するためのものです。
ファクトリーアノテーションを使用することで、テストケースを柔軟に作成および管理することができます。異なるデータセットやパラメータでテストケースを実行する必要がある場合に特に便利です。