当前位置: 首页 > 知识库问答 >
问题:

如何替换JUnit5中的WireMock@Rule注释?

花和宜
2023-03-14
@Rule
public WireMockRule wireMockRule = new WireMockRule(8080);
testCompile('org.junit.jupiter:junit-jupiter-engine:5.1.1')

我需要添加另一个JUnit依赖的模块吗?或者规则在JUnit5中不受支持?如果没有,如何替换@rule注释以使测试再次工作?

共有1个答案

叶允晨
2023-03-14

来自JUnit5用户指南:

@rule@classrule不再存在;由@extendwith@registerextension取代。另请参见“有限的JUnit4规则支持”。

然而,正如Tom所指出的,WireMock从2.31.0版本开始就完全支持JUnit Jupiter:

// New JUnit 5 extension
@WireMockTest
class DeclarativeWireMockTest {

    @Test
    void test_something_with_wiremock(WireMockRuntimeInfo wmRuntimeInfo) {
        // The static DSL will be automatically configured for you
        stubFor(get("/static-dsl").willReturn(ok()));
      
        // Instance DSL can be obtained from the runtime info parameter
        WireMock wireMock = wmRuntimeInfo.getWireMock();
        wireMock.register(get("/instance-dsl").willReturn(ok()));
       
        // Info such as port numbers is also available
        int port = wmRuntimeInfo.getHttpPort();
        
        // Do some testing...
    }

}
 类似资料:
  • 编辑:我当前代码的部分是: 所有测试类都扩展了TestBase。我得到一个错误:

  • 问题内容: 我在测试中使用Wiremock,并具有以下代码行: 我想切换到Junit5。因此,我添加了下一个依赖项(使用gradle): 但是当我尝试导入@Rule注释时没有任何建议。我是否需要添加另一个junit依赖模块?还是Junit5不支持规则?如果没有,我该如何替换@Rule批注以使测试再次起作用?谢谢。 问题答案: 从总体上看,你做了什么和JUnit 4中应该做和该关联提供的JUnit

  • 我正在尝试配置Wiremock映射,以从请求中返回一个带有值的JSON响应。 请求很简单 它的映射是: 我收到回复: 而预期的是: 如果我切换到XML请求,模式

  • 我有一个存根,可以在/__admin/下看到,但是当进行任何类型的rest调用时,在__admin/requests或__admin/requests/unmatched中没有任何记录,我觉得这很奇怪。Wiremock是否未能拦截请求? 简化代码: 错误: 在以下站点观察到错误:* _ _检查点获取http://localhost的⇢请求: ... [org.springframework.web

  • 问题内容: 我想用注释替换XML applicationContext配置。 如何用固定的构造函数参数替换简单的bean? 范例: 我正在阅读有关@Value的一些解释,但我不太了解如何传递一些固定值… 部署Web应用程序时是否可以加载此bean? 谢谢。 问题答案: 我认为您所追求的是: 您还可能希望通过系统属性来配置这些文件。您可以使用注释通过和语法读取系统属性。 为此,您可以在注释中使用不同

  • 假设我不想使用JSR303来验证我的bean。当bean被标记为有效时,是否可以实现Spring将使用的自定义验证器? 如果我的自定义验证器是Spring组件,那就太好了