[英]How to assert/unit-test servers JSON response?
我當前的項目使用JSON作為數據交換格式。 在開始集成服務之前,前端和后端團隊都同意JSON結構。 有時由於后端團隊未通知JSON結構的變化; 它打破了前端代碼。
是否有任何外部庫可用於比較模擬JSON(夾具)與服務器JSON響應。 基本上它應該斷言整個JSON對象,並且如果服務器JSON格式中存在任何違規,則應該拋出錯誤。
附加信息:App基於JQuery消費REST JSON服務。
我最近一直在使用QUnit: http ://docs.jquery.com/QUnit來獲取我的很多JS代碼。
asyncTest http://docs.jquery.com/QUnit/asyncTest可以非常有效地用於測試JSON結構。
例:
asyncTest("Test JSON API 1", 1, function() {
$.getJSON("http://test.com/json", function(data) {
equals(data.expected, "what you expected", "Found it");
});
});
https://github.com/skyscreamer/JSONassert可能有助於消除誤報,因此如果服務器返回的字段順序發生變化,但總體響應相同,則不會觸發失敗。
由於沒有答案我會把我的兩分錢。
如果問題在於您正在處理從后端轉移需求的問題,那么您需要做的就是將自己與這些更改隔離開來。 在前端和后端之間放置一個抽象。
也許您可以將此抽象稱為JSON數據格式交換。
因此,當GUI單元測試(希望你是TDDing你的Web GUI)時,你將有一個模擬JSON DIF。 因此,當將后端與前端*集成時,任何軟件更改都將在抽象層實現中完成。 當然,您已經根據商定的JSON結構對這些進行了測試。
OBTW,我認為服務器端團隊應該負責指定要對服務器使用的協議。
*為什么這讓我想起了我的屁股,你的臉可能是雙胞胎。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.