经过几年的遵循工作中'架构师'传下来的不良实践,并认为一定有更好的方法,我最近一直在阅读TDD和DDD方面的知识,我认为这些原则和实践非常适合我们编写的复杂软件。
然而,我看到的许多TDD示例调用了域对象上的一个方法,然后测试对象的属性以确保行为执行正确。
另一方面,业内的一些知名人士(尤其是Greg Young在他关于CQRS的演讲中)主张通过删除所有“getters”来完全封装每个域对象。
因此,我的问题是:如果禁止检索域对象的状态,如何测试域对象的功能?
我认为我错过了一些基本的东西,请随意称呼我为白痴并启发我 - 任何指导将不胜感激。