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

WireMock存根创建失败:期望201,但得到200

祖浩淼
2023-03-14

我是WireMock的新手,正在尝试让我的第一个单元测试与它配合使用。现在,跟随wiremock上的文档。org,我写了这个

    WireMockConfiguration config = wireMockConfig().port(9089).httpsPort(8443);
    m_wireMockServer    =       new WireMockServer(config);

    m_wireMockServer.start();
    WireMock.configureFor("localhost", 9089);
    givenThat(get(urlEqualTo("/some/thing"))
    .willReturn(aResponse()
        .withHeader("Content-Type", "text/plain")
        .withBody("Hello world!")));

我希望这会使任何超文本传输协议请求 /some/thing被捕获。它在调用时给我以下异常:

com.github.tomakehurst.wiremock.client.VerificationException: Expected status 201 for http://localhost:9089/__admin/mappings/new but was 200
at com.github.tomakehurst.wiremock.client.HttpAdminClient.postJsonAssertOkAndReturnBody(HttpAdminClient.java:151)
at com.github.tomakehurst.wiremock.client.HttpAdminClient.addStubMapping(HttpAdminClient.java:65)
at com.github.tomakehurst.wiremock.client.WireMock.register(WireMock.java:130)
at com.github.tomakehurst.wiremock.client.WireMock.register(WireMock.java:126)
at com.github.tomakehurst.wiremock.client.WireMock.givenThat(WireMock.java:65)

我错过了什么?创建存根时有什么问题?

共有1个答案

楚瑞
2023-03-14

我的猜测是,你在测试运行之间的所有时间都有Wiremck在后台运行,因此,当你在测试中设置一个新的映射时,这个映射并不是真正的新映射,因为已经有一个现有的映射,Wiremck响应200(OK)而不是201(Created)。

为了测试这个假设,尝试在分配给Wiremck的端口上定位进程,如果有,则杀死它并再次运行测试。

 类似资料:
  • 任何人谁可以解决这个问题的颤振。请帮帮我。谢谢 失败:生成失败,出现异常。 > 其中:Build file'C:\hello\u everyone\android\app\Build。梯度线:1 错误:评估项目“: app”时出现问题。 在Project类型的project': app'上找不到参数[]org.gradle.api.方法Properties()。 > 尝试:使用--stacktra

  • 我想在启动我的cucumber-jvm测试之前加载我所有的wiremck存根文件。 根据wiremock docs,通过API只能推送一个文件。不是散装的。我认为在启动测试之前,应该在测试项目中使用java代码。 通过代码实现这一点的最佳方式是什么。

  • 我有一个存根文件,我通过c#管理api发送到一个独立的线子实例。当我通过postman发送时,我得到了预期的响应,除了响应体总是空的,即使在我的文件中我有这个: } 我看到预期的标题a b,但正文中什么都没有。另外,如果我将其更改为纯文本: 这也没用-我做错了什么?

  • 我使用poi-jar创建.xlsx文件,poi-3.15.jar,poi-ooxml-

  • 我正在使用一个H2数据库来测试我的Grails应用程序。我有一些简单的领域类,比如: 但是,表似乎没有正确创建。 它设置为在模式下使用临时内存中的H2数据库。

  • 问题 你想在单元测试中忽略或标记某些测试会按照预期运行失败。 解决方案 unittest 模块有装饰器可用来控制对指定测试方法的处理,例如: import unittest import os import platform class Tests(unittest.TestCase): def test_0(self): self.assertTrue(True)