【问题标题】:wiremock request matching with comparison between two query parametersWiremock 请求匹配两个查询参数之间的比较
【发布时间】:2018-08-23 11:45:35
【问题描述】:

我正在使用wiremock(模拟我们的Rest API)进行硒测试。我有一个休息端点,例如http://localhost:8080/compare-date?from=2018-03-01&to=2018-03-10

为此,我们正在尝试使用Java 创建一些智能模拟,仅当to 日期小于from 日期时才会调用它。例如:http://localhost:8080/compare-date?from=2018-03-01&to=2018-02-10

但是,我无法做到这一点。请建议如何做到这一点。提前致谢。

谢谢, 陀罗尼

【问题讨论】:

    标签: java kotlin stub wiremock ohhttpstubs


    【解决方案1】:

    目前最好的办法是创建一个自定义的RequestMatcher 实现,它可以确定日期是否在查询参数之间。

    【讨论】:

      【解决方案2】:

      现在可以使用来自WireMock.Net 的 C# .NET 版本的 LinqMatcher

      与您的请求相匹配的 JSON 示例可以是:

      {
          "Request": {
              "Path": {
                  "Matchers": [
                      {
                          "Name": "WildcardMatcher",
                          "Pattern": "/linq"
                      }
                  ]
              },
              "Params": [
                  {
                      "Name": "from",
                      "Matchers": [
                          {
                              "Name": "LinqMatcher",
                              "Pattern": "DateTime.Parse(it) > \"2018-03-01 00:00:00\""
                          }
                      ]
                  }
              ],
              "Body": {}
          },
          "Response": {
              "Body": "linq match !!!"
          }
      }
      

      【讨论】:

        【解决方案3】:

        理想情况下,您应该已经将响应作为测试的一部分。话虽如此,如果您想从存根中获得此功能,那么您将不得不扩展它。

        您可以通过多种方式扩展 WireMock,其中大部分都可以在此页面上找到:http://wiremock.org/docs/extending-wiremock/

        老实说,我可能会针对特定的反应使用特定年份并为它们制定规则。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-09-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多