在Java 中忽略子順序的同時測試JSON 物件的相等性
在單元測試中,通常會比較從Web 服務傳回的JSON 物件至預期值。但是,某些 JSON 庫可能會執行嚴格的引用比較,這可能會很脆弱,並且由於子順序的差異而失敗。
為此,Skyscreamer JSONAssert 函式庫提供了一個解決方案。其非嚴格模式透過以下方式實現靈活性:
相較之下,嚴格模式表現得更保守,類似json-lib 的測試class.
要利用JSONAssert,可以如下建置測試:
@Test
public void testGetFriends() {
JSONObject data = getRESTData("/friends/367.json");
String expected = "{friends:[{id:123,name:\"Corby Page\"}"
",{id:456,name:\"Solomon Duskis\"}]}";
JSONAssert.assertEquals(expected, data, false); // Non-strict mode
}
JSONAssert.assertEquals() 中的參數包括預期的 JSON 字串、實際資料字串以及指示是否為嚴格模式的標誌。
JSONAssert 提供清晰的錯誤訊息,這在以下情況下至關重要:比較大型 JSON 對象,確保單元測試的穩健性。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3