我创建了一个工厂和一组规范来创建和验证聚合根。目前我对工厂进行了一些测试,调用工厂产品的规格,但我想知道这是否足够。从设计的角度来看,将工厂与其产品的规格结合起来可能会更好,因为它们是密切相关的。
如果聚合根产品的规范用于验证而不是创建,那么从工厂内部调用它是否有意义?
还是单元测试足够好?
我创建了一个工厂和一组规范来创建和验证聚合根。目前我对工厂进行了一些测试,调用工厂产品的规格,但我想知道这是否足够。从设计的角度来看,将工厂与其产品的规格结合起来可能会更好,因为它们是密切相关的。
如果聚合根产品的规范用于验证而不是创建,那么从工厂内部调用它是否有意义?
还是单元测试足够好?
答案可能取决于你如何使用你的规范,以及代码在创建过程中是否有很多破坏。
规格几乎可以用于您能想到的任何事情。在基本级别上,规范只是封装到对象中的可控条件语句。无论代码在哪里使用条件逻辑,如果开发人员认为有一些理由,人们可能会将该逻辑重构为规范。
在实际代码中使用规范并没有错,只要它使代码更可用、可维护或可读。创建仅在测试中使用的规范也没有错。规范是简单的对象,由于大多数规范相对简单,以一种或另一种方式将代码与规范耦合似乎对维护或可重用性没有太大的负面影响。
如果聚合根产品的规范用于验证而不是创建,那么从工厂内部调用它是否有意义?
是的,但可能只有当您遇到麻烦或对工厂的产品缺乏信心时。
还是单元测试足够好?
是的,从单元测试中调用规范足以证明工厂产品的有效性(至少在规范涵盖的内容方面)。但是,我不经常在单元测试中使用规范,只有当我遇到困难时,或者它是我正在测试的逻辑的一部分时。