SpringJUnit4ClassRunner

SpringJUnit4ClassRunner

我很痛苦地无法自动接线一些步骤。
为了说明这一点,我在github上做了一个小样本项目

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

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

最佳答案

问题是您使用的是其他亚军。通常,人们使用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的Parameterized)或第三方运行器(如MockitoJUnitRunner)组合。
  
  为了实现与SpringJUnit4ClassRunner相同的功能,必须将SpringClassRule与SpringMethodRule结合使用,因为SpringClassRule仅支持SpringJUnit4ClassRunner的类级功能。


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

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

08-19 11:17