我可以在黄瓜测试中使用spring自动控制器吗? [英] Can I use spring to autowire controller in cucumber test?

查看:227
本文介绍了我可以在黄瓜测试中使用spring自动控制器吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆