Cucumber4 Spring boot 2 с автоматическим подключением экземпляров равны нулю - PullRequest
0 голосов
/ 10 июня 2019

Когда я пытаюсь запустить тест на огурец, тест выполняется, но поля с автопроводкой равны нулю в классе определений шагов

Мой pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
........
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-java -->
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-java</artifactId>
            <version>4.2.0</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-junit</artifactId>
            <version>4.2.0</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-spring -->
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-spring</artifactId>
            <version>4.2.0</version>
            <scope>test</scope>
        </dependency>
......
<dependency>
            <groupId>net.serenity-bdd</groupId>
            <artifactId>serenity-core</artifactId>
            <version>${serenity.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>net.serenity-bdd</groupId>
            <artifactId>serenity-junit</artifactId>
            <version>${serenity.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>net.serenity-bdd</groupId>
            <artifactId>serenity-screenplay</artifactId>
            <version>${serenity.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>net.serenity-bdd</groupId>
            <artifactId>serenity-screenplay-webdriver</artifactId>
            <version>${serenity.version}</version>
            <scope>test</scope>
        </dependency>
<!--        <dependency> -->
<!--            <groupId>net.serenity-bdd</groupId> -->
<!--            <artifactId>serenity-cucumber</artifactId> -->
<!--            <version>${serenity.cucumber.version}</version> -->
<!--            <scope>test</scope> -->
<!--        </dependency> -->
        <dependency>
            <groupId>net.serenity-bdd</groupId>
            <artifactId>serenity-cucumber4</artifactId>
            <version>1.0.4</version>
            <scope>test</scope>
        </dependency>
.........
</project>

Мой класс огурцов

@RunWith(CucumberWithSerenity.class)
@CucumberOptions(glue = "fr.mycompany.cucumber.scenarios.subscriber", features = { "src/test/resources/cucumber/scenarios/subscriber" })
public class CucumberStepDefinitions {

}

Мой класс определения шага огурца

public class SubscriberSteps extends IntegrationTest {

    @Autowired
    private SubscriberBean subscriberBean;

    @Autowired
    private SubscriberService subscriberService;

    @When("^The user make a susbscription$")
    public void The_user_make_a_susbscription() {
        System.out.println("Run");
        SubscriptionData data = SubscriptionDataBuilder.build();
        Subscriber subscriber = subscriberService.subscription(data);
        assertThat(subscriber).overridingErrorMessage("Subscription 
           failed").isNotNull();
        subscriberBean.setSubscriber(subscriber);

    }
........
}

Класс IntegrationTest

@SpringBootTest(classes = SpringBootCucumberConfig.class)
public class IntegrationTest extends AbstractTestNGSpringContextTests {

    @Autowired
    private GenericService genericService;

    @Test
    public void test() {

    }
........
}

Мой весенний загрузочный класс приложений

@SpringBootApplication(scanBasePackages = { "fr.mycompany.cucumber" })
public class SpringBootCucumberConfig {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootCucumberConfig.class, args);
    }

}

Класс обслуживания

@Service
public class SubscriberService {
    @Autowired
    private SubscriberRepository subscriberRepository;
.......
}

Когда я запускаю сценарий, тест выполняется, но на шаге подписки «Пользователь делает подписку», когда я отлаживаю, я вижу поля autowired subscriberBean и subscriberService, но когда я запускаю тест junit, это работа Не эти два поля, но все поля с автопроводкой имеют значение null

...