如何在Junit 5中替换@Rule注释?
我在测试中使用Wiremock,并具有以下代码行:
@Rulepublic WireMockRule wireMockRule = new WireMockRule(8080);
我想切换到Junit5。因此,我添加了下一个依赖项(使用gradle):
testCompile('org.junit.jupiter:junit-jupiter-engine:5.1.1')
但是当我尝试导入@Rule注释时没有任何建议。我是否需要添加另一个junit依赖模块?还是Junit5不支持规则?如果没有,我该如何替换@Rule批注以使测试再次起作用?谢谢。
回答:
从总体上看,你做了什么@Rule
和@ClassRule
JUnit
4中应该做@ExtendWith
和Extension
该关联提供的JUnit
5.非常密切的功能
它可以作为标准的JUnit的生命周期挂钩,但它是在提取Extension
类。与相似@Rule
,Extension
可以为测试类添加所需的s个。
要解决此问题,您可以采用以下几种可能的方法:
- 保持JUnit 4的方式(JUnit 5拥有允许执行JUnit 3或4测试的JUnit Vintage部分)。
- 将重写
@Rule
为Extension
。 WireMockRule
使用@BeforeEach
和@AfterEach
挂钩方法在类的每个测试中执行(启动服务器,执行测试并停止服务器)完成的实际处理。- 使用第三个库,它以JUnit 5扩展方式实现等效的WireMockRule,例如https://github.com/lanwen/wiremock-junit5
请注意,您的问题已经在JUnit 5
Issues中讨论过。
以上是 如何在Junit 5中替换@Rule注释? 的全部内容, 来源链接: utcz.com/qa/418576.html