unit test - google gson

在單元測試中,很多次都要構造一些測試的實體數據,如果通過代碼去構造實體,則要寫很多代碼而且難以維護,所以我們可以通過構造並讀取json文件生成實體對象的方式來實現。

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.0</version>
    <scope>test</scope>
</dependency>
Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").enableComplexMapKeySerialization().create();
String sourceData = FileUtils.readFileToString(new File("src/test/resources/data/xxx.json"), "UTF-8");
xxxentityinstance = gson.fromJson(sourceData, xxxEntity.class);

File utils: import org.apache.commons.io.FileUtils;

在從json文件轉DTO時,尤其是構造List<DTO>時,有可能會出現轉換時想要的DTO被轉成了LinkedTreeMap,這時在轉換時要用TypeToken轉換下。

String XXXDTOsData = FileUtils.readFileToString(new File("src/test/resources/data/xxx.json"), "UTF-8");
Type type = new TypeToken<List<xxxDTO>>() {}.getType();
List<xxxDTO> xxxDTOs = gson.fromJson(xxxDTOsData, type);

LinkedTreeMap解決方案借鑑博客:https://blog.csdn.net/qq_37402650/article/details/83240938

另外,看到一篇博客,在講幾種json轉換工具的使用:https://blog.csdn.net/wangmx1993328/article/details/84385548

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章