我应该在仅用于json序列化的类中为单元测试添加getter

时间:2012-06-20 10:44:57

标签: unit-testing

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

如果我添加getter,那么我正在更改该类的api仅用于单元测试。 在这种情况下,最佳解决方案是什么?为什么?任何想法都将受到赞赏。 谢谢。

1 个答案:

答案 0 :(得分:0)

或者,您可以测试通常使用的类的形式 - 它的序列化版本。由于serializator是一个可以安全地assume works的组件,所以只需在测试类完成其工作并将结果与​​引用JSON进行比较后序列化对象。这将间接测试您的类是否正确设置属性。

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