![](/img/trans.png)
[英]Why am i getting Assert Not Equal from the Mock Server in Java?
[英]Mountebank - How do I assert message body is JSON format in a POST request in mountebank
我想在mountebank的POST請求中存根並檢查消息正文,
{
"port": "22001",
"protocol": "http",
"name": "login_user",
"stubs": [
{
"responses": [
{
"is": {
"statusCode": 201,
"headers": {
"Content-Type": "application/json"
},
"body": {}
},
"_behaviors": {
"wait": 100
}
}
],
"predicates": [
{
"equals": {
"path": "/login_user",
"method": "POST",
"headers": {
"Content-Type": "application/json"
},
"body": {
"name": "Tony",
"age": "20"
}
}
}
]
}
]
}
如果是 JSON 格式的消息正文。 預期響應狀態代碼 200。
例如
{
"body": {
"name": "Tony",
"age": "20"
}
}
如果消息體為 JSON 格式但 JSON 字符串。 預期響應狀態代碼 400。
例如
{
"body": "{\"name\": \"Tony\", \"age\": \"20\"}"
}
您可以使用包含(在此示例中非常粗糙)正則表達式的“匹配”謂詞來捕獲任何字符串輸入並返回 400:
"stubs": [
{
"responses": [
{
"is": {
"statusCode": 400,
"headers": {
"Content-Type": "application/json"
},
"body": {}
},
"_behaviors": {
"wait": 100
}
}
],
"predicates": [
{
"matches": {
"path": "/login_user",
"method": "POST",
"body": ".*\\\\\\\"name.*"
}
}
]
},
{
"responses": [
{
"is": {
"statusCode": 201,
"headers": {
"Content-Type": "application/json"
},
"body": {}
},
"_behaviors": {
"wait": 100
}
}
],
"predicates": [
{
"equals": {
"path": "/login_user",
"method": "POST",
"headers": {
"Content-Type": "application/json"
},
"body": {
"name": "Tony",
"age": "20"
}
}
}
]
}
]
或者,您還可以在冒名頂替者聲明中指定默認響應代碼 400,以便任何不匹配特定謂詞的內容默認返回 400 響應:
{
"port": "22001",
"protocol": "http",
"name": "login_user",
"defaultResponse": {
"statusCode": 400
},
"stubs": [
{
.... snip ....
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.