У меня довольно длинная настройка для моих тестовых случаев, которая находится в хуке @beforeEach
.
Проблема в том, что первый метод в хуке @beforeEach
должен использовать другую переменную, в зависимости от того, какой тест выполняется, в противном случае мне придется продублировать весь тестовый класс, чтобы учесть изменение переменнойчто, конечно, не идеально.
Моя текущая настройка:
@beforeEach
@afterEach
@Test
@Test
@Test
По сути, все 3 теста требуют, чтобы в переменную beforeEach вводилась другая переменная.
Из того, что я прочитал, ParameterResolver
может сработать, но то, что у меня есть, похоже, вызывает исключение, потому что я использую аннотацию @Test в другом месте класса (которую янужно):
public class ValidListParameterResolver implements ParameterResolver {
private static List<String> LIST_OF_STRINGS_TO_USE = ImmutableList.of("a", "b");
@Override
public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
return true;
}
@Override
public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
return LIST_OF_STRINGS_TO_USE.get(new Random().nextInt(LIST_OF_STRINGS_TO_USE.size()));
}
}
Тогда в моем тестовом классе:
@BeforeEach
@ExtendWith(ValidListParameterResolver.class)
void create(String file) throws IOException {
Type name = method(file);
}
Кто-нибудь достиг этого раньше?
Большое спасибо за вашу помощь.