向moco

时间:2015-05-30 19:45:41

标签: json mocking

我正在使用一个独立的moco服务器(see here for more about moco)来模拟服务器的json请求并获得相应的json响应。

给定方案的配置文件如下所示:

[
    {
        "request": {
            "headers" : {
                "JSESSIONID" : "awK325Su2489Urw44G-5JIMH"
            },
            "json": {

                        "sport":"boxing",
                        "cuptype":"world-wide",
                        "comparison":"best",
                        "number":"all"
            }
        },

        "response": {
            "headers" : {
                "JSESSIONID" : "awK325Su2489Urw44G-5JIMH"
            },
            "json": {

                        "publicResultMessage":null,"updateServicePack":null,"checkbookFormat":1,"requestId":"67CDCECA","checkBookType":25,"servicePackContent":null,"deliveryType":1,"serviceId":24,"serverDate":"2015-05-13T16:08:37.942Z","upgradeApplicationMessage":{"writtenLeftToRight":null,"language":null,"data":null},"publicResultCode":0,"upgradeApplication":"0","errorCode":null,"debugMode":false,"supportNumber":"ABCD15484PPLKI","upgradeApplicationUrl":null
            }       
        }
    }

]

这是正常工作:每次我们发送带有上述请求数据的json请求以及头文件中的JSESSIONID值时,moco会提供正确配置的json响应。

然后规范发展并且无论向请求添加了多少其他参数,我都必须能够提供相同的响应。这意味着如果请求的json部分包含一个新参数,例如“now”datetime(例如使用(new java.util.Date()).toString()获得),它仍应该能够提供相同的json响应。这看起来像一个严重的首先是挑战,但我发现了moco的contain运算符,并意识到如果我将包含运算符应用于请求的已知部分,问题就可以解决了。

不幸的是,我找不到一种方法将它应用于json格式的请求,但仅作为文本请求。这意味着当我应用包含运算符时,我的请求会看起来像

"request": {
   "text": {
      "contain":"text that should appear in the request"
   }
},
"response": {
  "json": {
      "userToken":"Hys8475KLO451",
      "deviceId":123
  }
}

现在将此应用于我的初始json请求将迫使我将json转换为文本,一直添加转义字符并使json看起来像:

"\"sport\":\"boxing\",\"cuptype\":\"world-wide\",\"comparison\":\"best\",\"number\":\"all\""

哪个真的很难看。 但好消息是工作正常。但是我想知道是否包含可以直接应用于json(不将其格式化为原始文本)以及如何?还有什么其他意思我们可以用moco获得相同的结果?感谢。

0 个答案:

没有答案