为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Spring Cucumber Serenity 的 AutoWiring 步骤

使用 Spring Cucumber Serenity 的 AutoWiring 步骤

弑天下 2021-08-19 19:07:10
我无法自动连接一些步骤。为了说明这一点,我在github上做了一个小示例项目https://github.com/lpicquet/serenity-cucumber-spring我正在尝试自动连接步骤,以便我可以在它们之间共享数据,但测试当前失败。任何人都可以帮忙吗?
查看完整描述

1 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

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


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


要使用不同的跑步者以及弹簧功能,您可以使用 aClassRule和 a的组合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。


查看完整回答
反对 回复 2021-08-19
  • 1 回答
  • 0 关注
  • 141 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信