我在許多 Rest Assured 框架中看到,我們為序列化和反序列化創建 POJO 類,但假設我們必須自動化超過 50-70 個 API,因此為所有人創建 POJO 類似乎是繁瑣的作業,所以我們可以直接處理 JSON 物件和資料? 我們可以通過使用 Lombok 注釋來擺脫 getter 和 setter,但仍然必須設定變數。只是好奇我們可以遵循的最佳實踐是什么?
uj5u.com熱心網友回復:
不確定我是否理解正確。所以也許這個答案走向了完全錯誤的方向。
如果您有很多類和成員變數,為了簡化處理,您可以引入一個抽象級別。舉個例子:
- 您可以使用 HashMap 來代替類及其成員變數,將 [variable name] 存盤為 key,將 [variable value] 存盤為 value。
- 對于同一個類的多個物件,實體化多個HashMap
- 可能將所有生成的 HashMap 保存在一個 Collection 中,如 List
- 甚至可能有一個“外部”HashMap,將 [class name] 映射到 [collection]
- 最后它可能看起來像這樣:HashMap[類名-> Collection],Collection 包含多個“物件”HashMap。物件 HashMap 將它們的 [成員變數名] 映射到 [成員變數值]
現在,到 JSON 部分:Google 的 GSON 已經有適當的類來執行此操作(物件抽象),因此您現在在 JSON 和 Java 之間建立了一個簡單的橋梁。
然后你把它們放在一起,只為你想要處理的所有類撰寫一個序列化器和一個反序列化器。
uj5u.com熱心網友回復:
最后,您仍然需要為 POJO 或任何型別的物件(Map、List、JSON 物件...)賦值以創建 json 有效負載。我不喜歡直接操縱資料的想法,它太死板了。為了使您的作業不那么乏味,可以應用一些技巧:
- 如果您不想單獨創建太多 POJO 類,請創建內部類。
- 使用 Builder 模式(Intellij 建議或 lombok 中的 @Builder 注釋)更直接地創建 POJO 實體(與基本 Setter 相比)。
- 為每個屬性創建具有默認值的 POJO 實體,然后只創建重要的屬性。
- 將 POJO 物件的創建分離在其他包中,例如
PersonFactory構建Person實體。這將有助于使測驗更清潔。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/416390.html
標籤:
