Проблема
Я сталкиваюсь с следующей ошибкой при запуске моего проекта в качестве конфигурации модульного теста в Intellij:Код: Выделить всё
/Users/francislainycampos/IdeaProjects/so-be-automation/src/test/java/com/francislainy/sobeautomation/steps/MySteps.java:14:30
java: variable restClient not initialized in the default constructor
my setup
restClient.javaКод: Выделить всё
@Slf4j
@Component
@AllArgsConstructor
public class RestClient {
public RequestSpecification getRequestSpecification() {
// Rest Assured config here
}
}
Код: Выделить всё
@CucumberContextConfiguration
@SpringBootTest(classes = TestConfig.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class CucumberSpringConfiguration {}
Код: Выделить всё
@ComponentScan(basePackages = {"com.francislainy.sobeautomation"})
@EnableAutoConfiguration
public class TestConfig {}
Код: Выделить всё
@RequiredArgsConstructor
public class MySteps {
private final RestClient restClient;
private Response response;
@Given("I send a GET request to the Bored API")
public void iSendAGETRequestToTheBoredAPI() {
response = restClient.getRequestSpecification().get("https://www.boredapi.com/api/activity");
}
}
Код: Выделить всё
org.projectlombok
lombok
provided
io.cucumber
cucumber-spring
test
org.springframework.boot
spring-boot-starter-test
test
< /code>
[h4] что я попробовал < /h4>
[list]
[*] [b] Проверенная обработка аннотаций Lombok < /strong>: обработка аннотаций < - это < Стронг> включен [/b] в IntelliJ (Settings > Build, Execution, Deployment > Compiler > Annotation Processors
[*] вручную добавил конструктор : если я явно определяю конструктор на mysteps.java , проблема решается: < /li>
изменил область прицела для зависимости Lombok для компиляции или оставить его в качестве не указанного прицела по умолчанию.
[*] пробовал разные версии , как с Lombok 1.18.30, так и последним 1.18.36.
[/list]
Однако единственный обходной путь я обнаружил, что до сих пор значит удалить @RequiredArgsannotation и явно определить конструктор для моей переменной. ">
Код: Выделить всё
public class MySteps {
private final RestClient restClient;
private Response response;
public MySteps(RestClient restClient) {
this.restClient = restClient;
}
}
Почему @requiredargsconstructor не может инициализировать RestClient при запуске тестов в Unit Test Intellij Конфигурация , но хорошо работает с MVN Test ? Есть ли способ обеспечить, чтобы сгенерированный Ломбоком конструктор работает правильно в обоих сценариях? /65uwtdub.png "/>
https://github.com/francislainy/so-be-automation
Спасибо.
Подробнее здесь: https://stackoverflow.com/questions/794 ... stclient-n