在编写单元测试时,我需要一些带有示例数据的对象。例如,假设我有一个 Order 对象。需要编写这样的代码 -
Order o = new Order();
o.setId(3);
o.setAmount(2830.9);
List<Item> items = new ArrayList<Item>();
Item i = new Item();
i.setId(3);
i.setCost(34);
items.add(i);
o.setItems(items);
它比这里看起来更令人沮丧和冗余,因为一个真实的对象可能有更多的属性和嵌套对象。
如果一个人需要多个订单......
创建用于测试的模拟数据对象的最佳方法是什么?
我突然想到要从 Json 中反序列化我的对象。是否有标准、有效的方法来执行此操作?
最佳答案
通常 DTO 只包含字段,没有需要模拟的逻辑。
我会使用 DTO 作为自身的模拟。如果 DTO 中有逻辑,您可能想模拟出来,我会将逻辑移出 DTO。
要创建 DTO,我会从测试本身或外部文件中的文本中执行此操作。您可以使用 JSon,但如果您还没有使用它,我会使用 XMLEncoder/XMLDecoder。它不是漂亮的 XML,但它是内置的,因此您不需要额外的库。
如果可以,您也许能够从应用程序的日志中创建 DTO,这样您就可以重新创建一个真实的场景。
关于java - 在 Java 中模拟 DTO 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12454855/