mountebank - Mountebank 谓词不检查标头
问题描述
我有下面的代码,看起来它没有将标题作为谓词检查。
{
"responses": [
{
"inject": "<%- stringify(filename, 'Scripts/MyDept/CutOffTime.ejs') %>"
}
],
"predicates": [
{
"matches": {
"method": "GET",
"path": "/cutoff-times",
"query": {
"country": "\\w+"
},
"headers": {
"X-CLIENT-ID": "^[ A-Za-z0-9]*$"
}
}
}
]
}
奇怪的是,当我将@
值作为标头传递时,X-CLIENT-ID
它会验证并将消息显示为没有谓词匹配。因为它不是正则表达式的一部分。
解决方案
确定了问题,
基本上,如果您需要多个谓词,则需要将它们合并如下,(使用和/或)
{
"responses": [
{
"inject": "<%- stringify(filename, 'Scripts/MyDept/CutOffTime.ejs') %>"
}
],
"predicates": [
{
"and": [
{
"exists": {
"headers": {
"X-CLIENT-ID": true,
}
}
},
{
"matches": {
"method": "GET",
"path": "/cutoff-times",
"headers": {
"X-CLIENT-ID": "^[ A-Za-z0-9]*$"
},
"query": {
"country": "\\w+"
}
}
}
]
}
]
}
进一步匹配谓词不检查是否存在(例如标头存在)
推荐阅读
- azure - 遇到混合连接异常:所有连接的侦听器均未在允许的超时时间内接受连接
- android - FirebaseRecyclerAdapter 不显示来自 notifyDataSetChanged() 的更改
- javascript - 在 HTML 文件的标头中的源源下运行 JavaScript 文件
- javascript - 将字符串导出到文件中而不解释 `${process.env.REACT_APP_ENV}`
- php - 在 EventSubscriber 中如何从 URL 获取参数?
- python - 如何使用 pyqt5 捕获图像?
- f# - 参数化异常类型
- c - 为什么使用 GDB 检查时,某些局部变量没有在相应的堆栈帧中列出?
- r - 将回归系数存储在 R data.table 中
- pic - 如何定义 Rb0 到 Rb6 = hex (x%10); // 没有 Rb7 引脚