我已阅读了所有这些方法:合同设计,面向方面编程,测试驱动开发和单元测试。在实践中,我只使用单元测试和AOP(AspectJ)。我知道这是不同的事情,但似乎我对他们的目的有一些妄想。DBC,AOP,TDD和单元测试目标之间的差异
问题\索取:您可以为DBC,AOP,TDD的目的和单元测试之间的差异一个简短的调查?你能回顾一下我的结论并指出我错在哪里吗?
我的结论:
- DBC VS单元测试:DBC描述了一个不变量contrains,而单元测试强制执行。因此,您使用单元测试来检查所有工作是否正确,并使用DBC使客户的代码更清晰。我对吗?如果你有单元测试你可能想要使用DBC?只是为了可读性?
- DBC vs AOP:AOP既可以用于检查合同,也可以用于其他便利位置,例如日志记录等。我还使用AspectJ进行服务器端验证。比AOP更广泛的概念也包含DBC。我对吗?
- TDD和DBC目的或TDD和AOP有什么区别?
那么DBC优于单元测试的优点是什么? –
对我而言,没有任何优势,DBC就像是一个永不履行的承诺,TDD是现在很多程序员都在实践中取得卓越成果的现实。 – AlfredoCasado