在遵循我工作场所的“架构师”传下来的不良做法并认为必须有更好的方法之后,我最近一直在阅读有关 TDD 和 DDD 的内容,我认为这些原则和做法将是一个非常适合我们编写的软件的复杂性。
但是,我见过的许多 TDD 示例调用域对象上的方法,然后测试对象的属性以确保行为正确执行。
另一方面,业内几位受人尊敬的人(Greg Young 在他关于 CQRS 的演讲中最引人注目)主张通过删除所有“getter”来完全封装每个域对象。
因此,我的问题是:如果禁止检索其状态,如何测试域对象的功能?
我相信我缺少一些基本的东西,所以请随时称我为白痴并启发我 - 任何指导将不胜感激。