テストを生成して実行することは可能ですか?Geb JUnit4自動生成テスト
404ページとその他のテストを指しているかどうか確認したいURLのリスト。私は、各リンクごとに別々のテストを作成したくありません。それはたくさんの仕事になります。
可能でない場合は、テストから別のテストを指し示すことは可能ですか?別のテストが失敗した場合は、最初のテストを続行しますか?
私のテストでは、Gebish、Gradle、JUnit4でGroovyを使用しています。
テストを生成して実行することは可能ですか?Geb JUnit4自動生成テスト
404ページとその他のテストを指しているかどうか確認したいURLのリスト。私は、各リンクごとに別々のテストを作成したくありません。それはたくさんの仕事になります。
可能でない場合は、テストから別のテストを指し示すことは可能ですか?別のテストが失敗した場合は、最初のテストを続行しますか?
私のテストでは、Gebish、Gradle、JUnit4でGroovyを使用しています。
あなたが探しているものはparameterizedテスト、テストは生成されていないと思います。私があなたを正しく理解していれば、同じのテストをたくさんの「もの」のテストに使いたいと思っています。
パラメータ化されたテストでは、データを返す静的メソッドを宣言してから、Parameterized
ランナーを使用してテストを実行するようにJUnitに指示します。次に、各テストクラスは、テストメソッドがアクセスできるテストデータとして引数を使用してインスタンス化されます。
@RunWith(Parameterized.class)
public class FibonacciTest {
@Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][] {
{ 0, 0 }, { 1, 1 }, { 2, 1 }, { 3, 2 }, { 4, 3 }, { 5, 5 }, { 6, 8 }
});
}
private int fInput;
private int fExpected;
public FibonacciTest(int input, int expected) {
fInput= input;
fExpected= expected;
}
@Test
public void test() {
assertEquals(fExpected, Fibonacci.compute(fInput));
}
}
別のアプローチは、theoriesです。理論では、テストクラスにテストデータを@Datapoint
でアノテーションされた異なる静的フィールドとして埋め込み、各テストメソッドが各データポイントに対して繰り返し呼び出され、特定のデータポイントが引数として渡されます。ここでも、あなたはまた、あなたの人生がずっと楽にして使用することがあります...
@RunWith(Theories.class)
public class UserTest {
@DataPoint
public static String GOOD_USERNAME = "optimus";
@DataPoint
public static String USERNAME_WITH_SLASH = "optimus/prime";
@Theory
public void filenameIncludesUsername(String username) {
assumeThat(username, not(containsString("/")));
assertThat(new User(username).configFileName(), containsString(username));
}
}
をそれを実現するための特別なランナーを持っている[スポック](https://github.com/spockframework/spock)と[テストパラメータ化のサポート](http://spockframework.github.io/spock/docs/1.0/data_driven_testing.html)を参照してください。 – erdi