[英]Mocking values in TDD
并非所有不可变的对象都是值对象。 顺便说一下,在设计时,请考虑理想对象只有不可变的字段和无参数方法。
关于启发式,一种有效的方法可以考虑如何使用对象:如果您构建实例,则调用一些方法,然后使用它完成(或将其存储在字段中),这可能不是值对象。 相反,如果将对象保留在某种数据结构中并与它们进行比较(与.equals()
),则可能有一个value对象 。 对于将用于键Map
的对象尤其如此。
值对象应该自己进行自动测试(测试很容易读写,因为很简单),但是没有必要对它们进行模拟:模拟接口的主要实际原因是实现类
都不适用于值对象。
引用链接的博客文章 :
当类不值得嘲笑时,有两种启发式方法。 首先,它只具有访问器或简单的方法来对它所拥有的值起作用,它没有任何有趣的行为。 其次,除了VideoImpl或类似的模糊术语之外,您无法想到该类的有意义的名称。
在标题为“不要模拟值对象”的部分的上下文中,第一点的含义是,值对象没有有趣的行为。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.