TDD和DDD同时仍然了解域名

Sam*_*ijo 6 testing tdd domain-driven-design

当你使用DDD从头开始一个新项目,并且仍然不太适合该域,TDD是有代价的.当你仍然了解域的细节时,你会发现很多你做错的东西,比如在其他类中更有意义的方法,或者从构造函数中添加/删除参数,以及许多其他更改.

这些变化非常频繁,特别是在开始时.通常(并且希望)每次更改都需要对单元测试进行一些更改,这会增加更改成本(正如我之前所说的那样,这种更改非常频繁).

我的问题是:即使在仍然发生很多变化的情况下,TDD是否值得花费成本,但是希望它们会很快变得不那么频繁(例如,一旦我们对域有更好的洞察力)?

wom*_*omp 3

如果您仍然在相对较高的级别上设计领域模型组件,那么您还不应该编写单元测试。在开始编写任何代码之前,您需要了解问题域以及类的职责。

如果您正在摆弄类中的构造函数和参数,那么 TDD 不应该被视为一种成本 - 它可以帮助您发现并修复设计中的问题。这是对更好的对象模型和更少的维护的投资。

另外,如果您使用 ReSharper 或 CodeRush 等重构工具,我发现大多数早期更改实际上并没有那么糟糕 - 只是带来了一些小不便。