编写你需要的测试,让你确信你的程序可以正常工作。
有人会争辩说,如果类没有业务逻辑,就没有必要为它编写测试。根据这个论点,那么您的简单 getter 和 setter 就不需要测试了。您只为具有“业务逻辑”的代码部分编写测试。
然而,争论的另一面是,如果你编写代码,你应该为它编写一个测试。根据这个论点,你应该为他们写一个测试。测试最终将变得非常微不足道。您实例化该对象,使用 setter 设置一个值,然后断言该值随后使用 getter 返回。你最终会得到很多简单的测试,编写起来可能会很乏味。
我在第二个阵营,并且发现如果某些东西难以测试或变得难以测试,这表明我的设计存在问题。在这种情况下,您可能有一些不需要的访问器方法。可能发生的情况是您在数据对象中拥有所有属性,并且“需要”为每个属性设置一个 getter 和 setter。但你真的吗?
在你的问题中,你提到你有一个getFullName
方法。那么你真的需要getFirstName
and的方法getLastName
吗?为什么在页面渲染过程中对象中的数据会发生变化?为什么不放弃设置器并使数据记录“不可变”,以便通过将新对象发送到数据库进行更新/创建来完成更新?
我敢打赌,你有这个问题的原因是你写了这段代码,现在正试图回去为它写测试。您拥有此数据对象并为所有内容自动创建 getter 和 setter。然后编写您在使用它时需要的额外方法(如getFullName
方法)。相反,我建议您仅在需要时创建访问器。然后您当时创建测试,您会发现函数列表要小得多。您可能有一些方法可以获取您需要的数据组合,还有一种批量方法可以获取特定形式的所有数据(即 json)。