8

我创建了一个工厂和一组规范来创建和验证聚合根。目前我有一些工厂的测试,称为工厂产品的规格,但我想知道这是否足够。从设计角度来看,将工厂与其产品的规格相结合可能会更好,因为它们密切相关。可以从集合工厂调用规范进行验证,还是验证调用属于单元测试(DDD)?

如果使用聚合根产品的规范进行验证而不是创建,从工厂内部调用它是否合理?

还是单元测试够好?

回答

2

答案可能取决于您如何使用规范以及代码在创建过程中是否突破。

规格几乎可以用于任何你能想到的东西。在基本级别上,规范只是封装到对象中的可控条件语句。如果代码使用条件逻辑,那么如果开发人员觉得有某些理由,那么可以将该逻辑重构为规范。

在实际代码中使用规范没有任何问题,只要它使代码更易于使用,维护或可读。创建仅用于测试的规范也没有问题。规格是简单的对象,由于大多数规格的相对简单性,以某种方式将代码与规范耦合似乎对维护或可重用性没有太大负面影响。

如果使用了聚合 根产品规格为 验证,而不是创造, 是否有意义将其从 在工厂里面打电话?

是的,但可能只有当你对工厂的产品有困难或缺乏信心时。

还是单元测试不够好?

是的,从单元测试中调用规范可以足以证明工厂产品的有效性(至少是关于规范涵盖的内容)。但是,在我的单元测试中,我并不经常使用规范,只是当我遇到困难的时候,或者它是我测试的逻辑的一部分时。