|
|
1
1
和大多数事情一样,这要看情况而定。 如果您想在mySecondClass字段中使用引用语义(即:您想保存对另一个类的引用),那么它与您的整数完全相同。默认值为null完全可以接受。 但是,如果希望始终保证值,则需要为第二个类构建或仅构建一个新对象。 此外,如果希望克隆而不是引用副本,则需要构造一个新对象并将其分配给引用。
例如,在您的代码中,如果用户从不调用Build,会发生什么?它仍然返回一些东西(因为每个方法都返回一个对象),但是它有效吗?作为你们班的消费者,我不敢肯定。另一方面,传统的重载构造函数确切地告诉我什么是有效的,什么是无效的,并且是编译时强制的。 |
|
|
2
0
这样做的好处是,它们通常能够使用默认值和空对象删除原始类型中存在的所有属性,而无需执行任何操作(除了单行语句)来创建伪对象。同时,您可以轻松地配置对象,以返回与测试相关的属性的值。而且,大多数这样的框架都支持递归伪造,因此类型中的复杂对象也会被伪造,等等。
如果没有任何理由避免添加模拟框架(假设您已经分离了测试,那么它只会是您的测试项目的依赖项),我衷心推荐它用于复杂类型。 |