【问题标题】:Use wiremock to intercept a POST request in order to check it's query params使用wiremock拦截POST请求以检查它的查询参数
【发布时间】:2019-11-15 12:12:50
【问题描述】:

是否可以使用 Wiremock 对已知的 POST 请求进行测试,以检查请求具有的查询参数?

wireMockServer.start();
stubFor(post(urlMatching("http://localhost:8080/smth.*"))
        .withHeader("Content-Type", equalTo("application/x-www-form-urlencoded"))
        .withQueryParam("authorizationcode", equalTo("123456"))
        .withQueryParam("baseamount", equalTo("0.10"))
        .withQueryParam("basecurrency", equalTo("978"))
        .withQueryParam("cardcountry", equalTo("ITA"))
        .withQueryParam("cardexpirydate", equalTo("0120"))
        .withQueryParam("customfield",equalTo("some+custom+field"))
        .withQueryParam("result", equalTo("APPROVED"))
        .willReturn(aResponse().withBody(RESPONSE))
);
wireMockServer.stop();

我不知道我是否走在正确的道路上,我在文档中找不到好的示例。

【问题讨论】:

    标签: java unit-testing wiremock


    【解决方案1】:

    您添加的所有这些参数和标头都必须存在于请求中才能被 WireMock 匹配。那应该正确测试请求中查询参数的存在。如果您在将请求与存根匹配时遇到问题,您可以在注册存根后使用断点停止代码执行并评估(IntelliJ 中的 ALT + F8)此表达式:

        WireMock.listAllStubMappings()
    

    我在 WireMock 作者的 GitHub 中找到了一些包含完整配置示例的存储库: https://github.com/tomakehurst/wiremock-demohttps://github.com/tomakehurst/wiremock-presentation-examples

    我不确定这是否完全回答了您的问题。如果您有任何具体问题,请提供导致它的代码: https://stackoverflow.com/help/minimal-reproducible-example

    【讨论】:

    • 谢谢!我所做的是创建一个请求,其中还添加了我的查询参数和标头,然后验证它们与存根的相同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-19
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多