谓词值在Mountebank中可以有通配符吗?

时间:2018-12-07 16:43:05

标签: integration-testing mountebank

我正在尝试定义存根:

{
   "predicates":[
      {
         "equals":{
            "method":"GET",
            "path":"/sword/eBISXMLInvoice2.do",
            "query": {
              "action": "index",
              "page": 3 <-- this one!
            }
         }
      }
   ],
   "responses":[
      {
         "is":{
            "statusCode":200,
            "headers":{
               "Content-Type":"application/xml"
            },
            "body":"<doclist><document uuid='101654' type='invoice' date='2018-11-14 13:49:43' /></doclist>"
         }
      }
   ]
}

期望的查询字符串参数之一(称为“页面”)可以具有多个值。我该如何定义谓词来处理呢?

1 个答案:

答案 0 :(得分:0)

我的问题实际上很容易回答。根据{{​​3}},“等于”谓词将在任何值匹配的情况下匹配

全文:

  

有时您可能会遇到多值键。可能是这种情况   带有带有重复键的querystrings和HTTP标头,用于   示例?key=first&key=second。在这种情况下,deepEquals将   要求所有值(以任何顺序)匹配。所有其他谓词   如果任何值匹配,将匹配,因此等于谓词将匹配   在上面的示例中,其值为second

所以我可以从谓词中删除可更改的查询字符串值,也可以将其保留在谓词中,这没关系。

  {
     "equals":{
        "method":"GET",
        "path":"/sword/eBISXMLInvoice2.do",
        "query": {
          "action": "index"
        }
     }
  }