2010-03-24 58 views
6

我目前的項目使用JSON作爲數據交換格式。在開始集成服務之前,前端和後端團隊都同意採用JSON結構。有時由於後端團隊未通知JSON結構發生變化;它打破了前端代碼。如何斷言/單元測試服務器JSON響應?

是否有任何外部庫可用於比較模擬JSON(燈具)和服務器JSON響應。基本上它應該斷言整個JSON對象,並且如果在服務器JSON格式中存在任何違規,應該會引發錯誤。

附加信息:應用程序基於使用REST JSON服務的JQuery。

回答

6

我會爲您的JSON對象推薦一個模式。

我使用Kwalify,但如果您更喜歡該語法,也可以使用Rx

+0

雖然爲JSON聲明模式很有趣。這是我關於夾具方法的想法;它既可用於測試後端服務的完整性,也可用於脫機或預集成UI開發。 – shazmoh 2010-03-24 03:46:29

+2

不要混合這些東西。使用模式來確保您都瞭解數據合同。使用後端的固件來做單元測試。混合它們會讓你更新太多東西,並會使你的生活複雜化。 – 2010-03-24 03:58:53

3

看起來你試圖從另一端解決問題。爲什麼你應該擔任前端開發人員來測試後端開發人員的工作?

在服務器上生成的JSON更適合使用標準方法在服務器上測試,即xUnit中的功能測試。如果您想將測試和文檔wiki集於一身,您還可以查看驗收測試框架,如FITnesse

如果即使在服務器上引入測試之後,您也會得到無效的JSON,這是人類通信中的問題,而不是測試中的問題。

+1

我不同意。即使後端在單元測試他們自己的代碼時應該做的更好,但是有很多次,這有助於確保您正在接收您期望的數據類型。通過快速檢查傳入的JSON,您可以通過正確地將問題確定爲前端或後端來顯着縮短調試時間 – Hortitude 2011-09-07 21:14:22

0

由於沒有答案,我會把我的兩分錢中

如果問題是,你正在處理從後端轉向要求,那麼你。需要做的是將自己從這些變化中分離出來。在前端和後端之間進行抽象。

也許你可以把這個抽象叫做JSON數據格式交換。因此,當GUI單元測試(希望你是TDD你的Web GUI)時,你將有一個模擬JSON DIF。所以當將後端與前端*集成的時候,任何軟件更改都將在抽象層實現中完成。當然,您已經基於商定的JSON結構進行了測試。

OBTW,我認爲服務器端團隊應該負責指定針對服務器使用的協議。

*這爲什麼提醒我這個笑話我的屁股和你的臉可能是雙胞胎。

相關問題