Org.junit.jupiter.api.extension.ParameterResolutionException: для параметра [int arg0] в конструкторе не зарегистрирован ⇐ JAVA

Программисты JAVA общаются здесь
Anonymous
Org.junit.jupiter.api.extension.ParameterResolutionException: для параметра [int arg0] в конструкторе не зарегистрирован

Сообщение Anonymous »

Я переношу наши тесты с Junit4 на Junit5, один из которых представляет собой базовый тестовый класс, унаследованный 29 другими классами с помощью конструктора.
Я изменил его, чтобы использовать Junit5 , структура следующая:

Код: Выделить всё

public class BaseTest {
protected String field1;
protected Integer field2;

public BaseTest(String field1, Integer field2) {
this.field1 = field1;
this.field2 = field2;
}
}

public class ChildTest extends BaseTest {
public ChildTest(String field1) {
super(field1, null);
}

private static Stream data() {
return Stream.of(Arguments.of("string1"));
}

@ParameterizedTest
@MethodSource("data")
public void test1() {
assertNull(this.field2);
}
}

Но теперь выбрасывает

Код: Выделить всё

org.junit.jupiter.api.extension.ParameterResolutionException: No ParameterResolver registered for parameter [java.lang.String arg0] in constructor [public junit5.ChildTest(java.lang.String)].
Я видел другие ответы, которые здесь не совсем применимы, кто-нибудь может поделиться идеями?
Я видел этот: Junit 5 — Для параметра не зарегистрирован параметр ParameterResolver.
  • Я уже использую только одну аннотацию: @ParameterizedTest;
  • Я пытался использовать функцию setup() с аннотацией @BeforeEach, но Junit5 почему-то не позволяет мне передавать в нее параметры...
Спасибо!< /п>

Подробнее здесь: https://stackoverflow.com/questions/791 ... eterresolv

Вернуться в «JAVA»