经过几年遵循我工作场所“架构师”传下来的不良实践并认为一定有更好的方法之后,我最近一直在阅读有关 TDD 和 DDD 的内容,我认为这些原则和实践将是一个很好的方法。非常适合我们编写的软件的复杂性。
然而,我见过的许多 TDD 示例都调用域对象上的方法,然后测试对象的属性以确保行为正确执行。
另一方面,业内几位受人尊敬的人士(Greg Young 在他关于 CQRS 的演讲中最引人注目)主张通过删除所有“getter”来完全封装每个域对象。
因此,我的问题是:如果禁止检索域对象的状态,如何测试域对象的功能?
我相信我错过了一些基本的东西,所以请随意称我为白痴并启发我 - 任何指导将不胜感激。
你所描述的是状态验证其中您对域对象的状态进行断言。 TDD 有一个分支叫做行为验证利用 Mock 对象。
行为验证允许您指定应调用哪些方法,以及如果需要,不调用哪些方法。
请参阅 Martin Fowler 的这篇文章了解更多详细信息:模拟不是存根 http://www.martinfowler.com/articles/mocksArentStubs.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)