黄瓜流道配置:
bfoob
功能文件:
@RunWith(Cucumber.class)
@CucumberOptions(features = "/features",glue {""})
@ContextConfiguration(classes = Init.class,
initializers = ConfigFileApplicationContextInitializer.class)
public class Test {
}
步骤定义文件::
class feature {
Scenario: Save test in db.
When I inject a payload in the aws queue
Then it should be integrated in database
}
我尝试在此处创建自定义注释,并在stepDefinition文件顶部使用此注释。 AbstractTest :::
@CucumberAbstract
@ContextConfiguration("classpath:application.yml")
public class MyStepdefs {
@Autowired
private QueueMessagingTemplate queueMessagingTemplate;
@Autowired
TestRepository testRepository;
String message = "Hi";
public MyStepdefs() {
When("^I inject a payload in the aws queue$", () -> {
this.queueMessagingTemplate.convertAndSend("QUEUE_NAME", message);
});
}
@Then("^it should be integrated in database$")
public void itShouldBeIntegratedInDatabase() throws Throwable {
//validations
}
}
答案 0 :(得分:2)
黄瓜运行器(cucumber.api.junit.Cucumber
)不会加载任何Spring上下文。
因此您的黄瓜步骤班不具备Spring知识。
要将bean注入类的字段中,必须加载Spring上下文,在本例中为Spring Boot上下文。
因此,您要寻找的是指定@SpringBootTest
>
@SpringBootTest
public class MyStepdefs {
...
}
答案 1 :(得分:0)
实际上,您需要将Cucumber与Spring Boot集成。 因此,您需要为Maven项目添加以下依赖项:
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>4.7.4</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>4.7.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-spring</artifactId>
<version>4.7.4</version>
</dependency>
您的黄瓜赛跑者是一样的
@RunWith(Cucumber.class)
@CucumberOptions(plugin = {"pretty"}, features = {"src/main/resources"})
public class ReportCaseCucumberTest {
}
现在在StepDefinition类中,您需要配置ContextConfiguration才能使用Spring。
@SpringBootTest
@ContextConfiguration(
classes = Application.class,
loader = SpringBootContextLoader.class)
public class StepsDefinitions {
@Autowired
private ApplicationContext appContext;
}
现在在StepDefinition类中,您可以使用“自动装配”注解来注入bean。
这解决了我的问题,您也可以查看本教程: https://medium.com/@bcarunmail/set-up-and-run-cucumber-tests-in-spring-boot-application-d0c149d26220