我可以在黄瓜测试中使用弹簧自动连接控制器吗?
我正在使用 Cucumber 自动测试我的应用中的服务和控制器.另外,我正在使用 Cucumber Junit runner @RunWith(Cucumber.class)
在测试步骤中.我需要实例化我的控制器,并且想知道是否可以使用 Spring 来自动装配它.下面的代码显示了我想要做什么.
I am using Cucumber to automate the testing of services and controllers in my app. In addition, I am using the Cucumber Junit runner @RunWith(Cucumber.class)
in the test steps. I need to instantiate my controller and was wondering if I could use Spring to autowire this. The code below shows what I want to do.
public class MvcTestSteps {
//is it possible to do this ????
@Autowired
private UserSkillsController userSkillsController;
/*
* Opens the target browser and page objects
*/
@Before
public void setup() {
//insted of doing it like this???
userSkillsController = (UserSkillsController) appContext.getBean("userSkillsController");
skillEntryDetails = new SkillEntryRecord();
}
推荐答案
我使用 cucumber-jvm 将 Spring 自动装配到 Cucumber 中.
I used cucumber-jvm to autowire Spring into Cucumber.
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-core</artifactId>
<version>1.1.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-spring</artifactId>
<version>1.1.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.1.5</version>
<scope>test</scope>
</dependency>
并将applicationContext.xml导入Cucumber.xml
And import applicationContext.xml into Cucumber.xml
<import resource="/applicationContext.xml" /> // refer to appContext in test package
<context:component-scan base-package="com.me.pos.**.it" /> // scan package IT and StepDefs class
在 CucumberIT.java 中调用 @RunWith(Cucumber.class)
并添加 CucumberOptions
.
In CucumberIT.java call @RunWith(Cucumber.class)
and add the CucumberOptions
.
@RunWith(Cucumber.class)
@CucumberOptions(
format = "pretty",
tags = {"~@Ignore"},
features = "src/test/resources/com/me/pos/service/it/" //refer to Feature file
)
public class CucumberIT { }
在 CucumberStepDefs.java 你可以 @Autowired
Spring
In CucumberStepDefs.java you can @Autowired
Spring
@ContextConfiguration("classpath:cucumber.xml")
public class CucumberStepDefs {
@Autowired
SpringDAO dao;
@Autowired
SpringService service;
}
相关文章