当前位置: 首页 > 面试题库 >

可以在黄瓜测试中使用弹簧自动连接控制器吗?

阮鸿煊
2023-03-14
问题内容

我正在使用Cucumber在我的应用程序中自动测试服务和控制器。另外,@RunWith(Cucumber.class)
在测试步骤中,我正在使用Cucumber
Junit运行程序。我需要实例化我的控制器,并且想知道是否可以使用Spring自动装配它。下面的代码显示了我想要做什么。

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();

}

问题答案:

我用黄瓜jvm将Spring自动接线到黄瓜中。

<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

<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

@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

@ContextConfiguration("classpath:cucumber.xml")
public class CucumberStepDefs {

    @Autowired
    SpringDAO dao;

    @Autowired
    SpringService service;
}


 类似资料:
  • 问题内容: 我有一个接口IMenuItem 然后我有一个接口实现 有什么方法可以仅使用IMenuItem接口从配置类创建MenuItem的多个实例?与@autowired之类的?还可以通过指定构造函数的参数来自动装配吗? 问题答案: 实际上对于这种情况是完美的。您可以自动连接特定的类(实现)或使用接口。 考虑以下示例: 现在,您可以根据注释值选择对象的名称,从而选择使用其中一种实现方式 像这样:

  • 我有控制器 我有一个控制器的组件 我还对我的控制器进行了测试。 当控制器调用。我得到一个。虽然我知道可以将添加到构造函数中,但我想知道是否有必要使用字段来实现这一点。如何确保字段注释在我的测试中有效?

  • 问题内容: 我正在尝试建立一个请求过滤器,该过滤器仅在与字母e和数字的模式匹配时才会使用。但是我似乎无法使其正常工作。每次尝试使用正则表达式时,我都会不断收到400个错误。 如果仅使用以下内容,它“有效”,但还会捕获没有我不需要的数字的映射。 我尝试了以下组合。 问题答案: 根据文档,您必须使用。甚至有一个例子:

  • 问题内容: 我有一个Web应用程序,这里有一个典型的问题,即针对不同环境需要不同的配置文件。某些配置作为JNDI数据源放置在应用程序服务器中,但是某些配置保留在属性文件中。 因此,我想使用Spring配置文件功能。 我的问题是我没有运行测试用例。 context.xml: 测试: 问题似乎是无法解析用于加载配置文件的变量: 当前配置文件应使用注释设置。由于这是一个测试用例,因此我将无法使用。如果可

  • 问题内容: 在对如何并行运行Cucumber测试用例进行了大量研究之后,我发现以下有关该主题的非常有用的文章: https://www.opencredo.com/2013/07/02/running-cucumber-jvm-tests-in- parallel/ 本文提供了一些很好的信息,可帮助您开始使用多线程环境,其中包括一些可以从Github下载的代码。 https://github.co

  • 本文向大家介绍使用黄瓜有什么好处?,包括了使用黄瓜有什么好处?的使用技巧和注意事项,需要的朋友参考一下 下面列出了使用黄瓜的一些优点- Cucumber是一种开源工具,不需要许可。 黄瓜可以通过Eclipse等IDE轻松配置。 黄瓜弥合了开发人员,测试人员,业务分析师,客户和产品所有者之间的理解和沟通差距。 黄瓜使没有技术知识的业务利益相关者参与其中。 黄瓜提供纯文本表示形式,使团队中的非技术人员