Quero executar repetidamente a seguinte classe de teste:
class Test {
static Foo foo;
@BeforeAll
static void setUpAll() {
foo = generateRandomFoo();
}
@ParameterizedTest
@ValueSource(ints = {1, 2, 3, 4})
void testBar(int i) {
assertThat(foo.bar(i))
.hasSize(i);
}
@ParameterizedTest
@ValueSource(ints = {1, 2, 3, 4})
void testQux(int i) {
assertThat(foo.qux(i))
.contains(i);
}
}
Tentei usar a anotação @ParameterizedTest
no método junto com @RepeatedTest
, mas eles não podem ser usados juntos. Mesmo que pudessem, ainda não faria o que eu preciso, porque preciso que a inicialização de foo
in setUpAll
aconteça entre repetições, e as invocações parametrizadas devem acontecer dentro de uma repetição (com o mesmo valor de foo
).
Aqui está o que eu preciso:
- repetição 1:
- inicialização de
foo
emsetUpAll
- execução de
testBar
com argumentos 1..4 - execução de
testQux
com argumentos 1..4
- inicialização de
- repetição 2:
- inicialização de
foo
emsetUpAll
- execução de
testBar
com argumentos 1..4 - execução de
testQux
com argumentos 1..4
- inicialização de
- etc.
Existe alguma maneira de fazer isso no JUnit 5 (Júpiter)?