【问题标题】:Mountebank using wrong predicate and ignoring the value in containsMountebank 使用了错误的谓词并忽略了 contains 中的值
【发布时间】:2020-08-11 15:20:54
【问题描述】:

我尝试了他们的文档,但它非常“基本”,所以希望这里有人能发现我的问题?我有 2 个谓词,一个使用错误的用户,一个使用正确的用户。 用户的 base64 是通过 post-body 发送的,但似乎 Mountebank 的 contains 只是简单地忽略它并选择具有另一个包含值的谓词......这是为什么呢?

我的请求是 dX...2g=:

"body":"{\"auth\":\"dXNlcjpmYWxzY2g=\"}"

但 Mountebank 将谓词与 dX...Gln 匹配:

using predicate match: [{
   "equals":{"method":"POST","path":"/new"},
   "contains":{"body":"{\"auth\":\"dXNlcjpyaWNodGln\""}
}]

contains 不匹配,它仍然使用那个谓词, 即使我的存根确实包含匹配的谓词,但它没有被使用:

{
  "path": "/new",
  "predicates": [{
    "equals": {
      "method": "POST",
      "path": "/new"
    },
    "contains": {
      "body": "{\"auth\":\"dXNlcjpyaWNodGln\""
    }
  }],
  "responses": [{
    "is": {
      "statusCode": 200,
      "body": {}
      }
    }
  }]
}
,
{
  "path": "/new",
  "predicates": [{
    "equals": {
      "method": "POST",
      "path": "/new"
    },
    "contains": {
      "body": "{\"auth\":\"dXNlcjpmYWxzY2g=\""
    }
  }],
  "responses": [{
    "is": {
      "statusCode": 401,
      "body": {}
      }
    }
  }]
}

我的语法错了吗?它匹配第一个谓词,即使它不包含 dXNlcjpmYWxzY2g= 它使用equals 确实有效,我只是好奇为什么contains 不是。

【问题讨论】:

    标签: predicate stub mountebank


    【解决方案1】:

    诀窍似乎是使用and,这很奇怪,但解决方案是:

    "predicates": [{
      "and": [
        { "equals": { "method": "POST", "path": "/new" }},
        { "contains": { "body": "{\"auth\":\"dXNlcjpyaWNodGln\"" }}
      ]
    }],
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-29
      • 1970-01-01
      • 1970-01-01
      • 2018-06-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多