1

我有一个仅用于使用 Jackson 进行字段访问的 json 序列化的类,现在我有一个方法,该方法接受一些输入并创建该类的实例,并使用 setter 填充属性。要对该方法进行单元测试,我需要比较该类的每个属性。没有公共吸气剂,它只能通过我试图避免的反射来完成。此外,我不想使用所有属性覆盖该类的 equals 方法。

如果我添加 getter,那么我只是为了单元测试而更改该类的 api。在这种情况下,最好的解决方案是什么,为什么?对此的任何想法将不胜感激。谢谢。

4

1 回答 1

0

或者,您可以像通常使用的那样测试类的形式——它的序列化版本。由于序列化器是一个您可以放心地假设工作的组件,因此只需在测试类完成工作后序列化对象并将结果与​​参考 JSON 进行比较。这将间接测试您的类是否正确设置了属性。

另一方面,人们可能会争论添加吸气剂的影响有多大。如果这是一种自动生成的样板代码,也许最好重新配置生成器以包含 getter。如果不是,并且您故意决定不实现 getter,它可能应该保持这种方式。

于 2012-06-20T12:28:50.977 回答