我可以在黄瓜测试中使用spring自动控制器吗? [英] Can I use spring to autowire controller in cucumber test?
问题描述
我使用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 to autowire Spring into 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;
}
这篇关于我可以在黄瓜测试中使用spring自动控制器吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!