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

Wiremck存根不工作

佟阳焱
2023-03-14

我刚刚开始使用Wiremck,我有一个关于存根的问题。

从文档中可以看出,您可以在映射下使用JSON文件,也可以在Java代码中使用代码stubFor(get)(urlEqualTo(…)。然而,我发现使用stubFor(get)(urlEqualTo()会导致Wiremock控制台中出现“请求不匹配”消息。

这是正确的行为吗?存根需要代码和json文件吗?

谢谢

共有3个答案

邴星洲
2023-03-14

没必要。我已经尝试了下面的代码,它对我有用:

import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
import static com.github.tomakehurst.wiremock.client.WireMock.get;
import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
import com.github.tomakehurst.wiremock.WireMockServer;

public class WireMockTest {
    public static void main(String[] args) throws InterruptedException {
        WireMockServer wireMockServer1 = new WireMockServer();  
        wireMockServer1.start();
        wireMockServer1.stubFor(get(urlEqualTo("/testWireMock"))
                       .willReturn(aResponse().withHeader("Content-Type", "text/plain")
                       .withStatus(200).withBody("Welcome to WireMock!")));
        System.out.println("Server started");
        Thread.sleep(1000);
        wireMockServer1.stop();
    }
}
蒙弘图
2023-03-14

WireMock只能在映射中使用JSON有效负载。听起来你的配置还有其他问题,但我需要更多细节来诊断。

凌成天
2023-03-14

不,wiremock只能与。json文件或仅使用java代码。如果你想的话,你可以把它组合起来。

如果请求不匹配,则url没有正确地存根。如果您使用的是独立进程,那么可以从--verbose开始查找请求不匹配的详细信息。

 类似资料:
  • 我的wiremock似乎不适用于自动配置。我在类路径中名为stubs的文件夹中有json文件,我在端口8080上运行了独立的jar。 json文件示例 当我用GET启动请求时- 提前谢谢

  • 我试图将多个存根组合到一个JSON文件中。 我已经准备好阅读这篇文章:加载wiremock存根文件和这篇文章https://github.com/tomakehurst/wiremock/issues/987https://github.com/tomakehurst/wiremock/issues/987 但我还是做不到。 目前,我有以下课程: 在我的文件夹中,我有: 具有不同存根的文件夹 我想

  • 使用Spring Cloud Contract设置多个Wiremock存根的最佳方法是什么?这些存根具有不同的主机/端口,并且都在由单个@Test方法执行的代码中调用?例如,我想测试ServiceA。doSomething(),此方法调用ServiceB。doSomethingElse()和consultclient。getKVValue()。我创建WireMockRestServiceServe

  • 我第一次试用Spring Cloud合同。我试图让我的客户机自动发现合同存根,但即使我的合同在响应中指定了“application/json”的内容类型,我从WireMock获得的内容类型仍然是“application/octet”。我做错了什么? 我的服务中有一个简单的方法,它从endpoint返回这样的模型: 我的合同是这样的: 在我的客户端中,我有一个类,它使用Spring来查询此endpo

  • 我有一个maven项目,它使用log4j2进行日志记录。我想覆盖RootLogger的模式。 这是我的log4j2。属性文件: 这是我的pom。log4j的xml文件: 我这样叫我的记录仪: 我的配置有两个问题。第一个是根记录器不使用我的ConsolePender(警告等以默认格式显示),在记录错误时,我只得到第一行,而不是整个堆栈跟踪)。

  • 我是测试的新手,我似乎没有成功地stub一个函数。我试图切断与数据库的连接,但它一直在联系数据库,而不是使用存根的结果: 这是功能: 这是测试: 我总是收到一个错误“未知用户”,这是正常的,因为用户确实不在数据库中。但是,我想存根“执行单查询”函数,避免它连接到数据库。