春季黄瓜宁静的自动装配步骤

时间:2018-08-29 16:33:50

标签: java spring testing cucumber-jvm serenity-bdd

我无法自动连线一些步骤。 为了说明这一点,我在github上做了一个小示例项目

https://github.com/lpicquet/serenity-cucumber-spring

我正在尝试自动连接步骤,以便我可以在它们之间共享数据,但是测试当前失败。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

问题是您使用的是其他Runner。通常,人们使用SpringRunner.class处理创建测试上下文等的能力。

  

构造一个新的SpringRunner并初始化TestContextManager,以向标准JUnit 4测试提供Spring测试功能。

要与弹簧功能一起使用其他流道,可以结合使用ClassRuleRule

@ClassRule
public static final SpringClassRule SPRING_CLASS_RULE = new SpringClassRule();

@Rule
public final SpringMethodRule springMethodRule = new SpringMethodRule();
  

SpringClassRule是一个自定义的JUnit TestRule,它通过TestContextManager以及相关的支持类和注释在标准JUnit测试中支持Spring TestContext Framework的类级功能。

     

与SpringJUnit4ClassRunner相比,Spring的基于规则的JUnit支持具有以下优势:它独立于任何Runner,因此可以与现有的替代运行器(如JUnit的参数化运行器)或第三方运行器(如MockitoJUnitRunner)组合。

     

但是,为了实现与SpringJUnit4ClassRunner相同的功能,必须将SpringClassRule与SpringMethodRule结合使用,因为SpringClassRule仅支持SpringJUnit4ClassRunner的类级功能。

没有这些,就无法在依赖类等中自动装配。

我已通过测试为您的项目添加了PR。