我创建了一个工厂和一组规范来创建和验证聚合根.目前我对工厂进行了一些测试,这些测试称工厂的产品规格,但我想知道这是否足够.从设计的角度来看,将工厂与其产品的规格相结合可能会更好,因为它们密切相关.
如果聚合根产品的规范用于验证而不是用于创建,那么从工厂内部调用它是否有意义?
或者单位测试是否足够好?
答案可能取决于您如何使用您的规范,以及代码是否在创建过程中破坏了很多.
规格可用于您能想到的几乎任何事物.在基本级别,规范仅仅是封装在对象中的可控条件语句.只要代码使用条件逻辑,如果开发人员觉得有一些理由,那么可能会将该逻辑重构为规范.
在实际代码中使用规范没有任何问题,只要它使代码更易于使用,可维护或可读.创建仅在测试中使用的规范也没有错.规格是简单的对象,由于大多数规范的相对简单性,以某种方式将规范耦合到规范似乎对维护或可重用性没有太大的负面影响.
If a specification for an aggregate
root product is being used for
validation,rather than for creation,
does it make sense to call it from
inside the factory?
是的,但可能只有当您对工厂的产品有麻烦或缺乏信心时.
Or is a unit test good enough?
是的,从单元测试中调用规范可以很好地证明工厂产品的有效性(至少在规范涵盖的范围内).我不经常在我的单元测试中使用规范,只是当我遇到困难时,或者它是我正在测试的逻辑的一部分.