我很痛苦地无法自动接线一些步骤。
为了说明这一点,我在github上做了一个小样本项目
https://github.com/lpicquet/serenity-cucumber-spring
我正在尝试自动连接步骤,以便我可以在它们之间共享数据,但是测试当前失败。有人可以帮忙吗?
最佳答案
问题是您使用的是其他亚军。通常,人们使用SpringRunner.class
处理创建测试上下文等的能力。
构造一个新的SpringRunner并初始化一个TestContextManager,以向标准JUnit 4测试提供Spring测试功能。
要与弹簧功能一起使用其他流道,可以组合使用ClassRule
和Rule
@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。