在过去的几年里,我使用NUnit / Moq在TDD工作,在过去的几个月里,我一直在使用mSpec来处理BDD。
到目前为止,我们现在希望更多地转向基于验收标准的测试,其中业务分析师参与其中,我们在开发过程中获得了外部。
所以现在我们已经预定义了Gherkin语法文件,并且使用specflow感觉它是正确的工作方式。
然而,在具有预定义Gherkin文件的单元测试级别将违背我对TDD的理解。换句话说,你的设计随着行为的不断改进你的设计。
由于我们正在使用外部方法,现在在单元测试级别,我们现在可以使用现在可以用来驱动我的单元测试的规范/行为(只是感觉它与我的方式相反)一直在做TDD)?
之前这些文件对于验收测试很重要,但作为开发人员,我将独自工作,除非我使用SpecFlow,否则它们不是必需的。
当我们使用mspec时,我们在具有GWT文件的单元测试级别有什么好处?开发人员应该能够跳转到代码并阅读测试,或者只是运行测试运行器来查看它在做什么。
TIA JD
答案 0 :(得分:15)
我的自发答案是否定的。
BDD和specflow和Cucumber等工具的主要好处是与项目的利益相关者进行沟通,并创建对要构建的内容的共同理解。
TDD的主要好处是在解决方案实施中采取一些小步骤,确保您构建可维护且优秀的代码。
或者如果你想; BDD旨在确保我们正在构建正确的东西,TDD就是确保我们正确地构建它。
如果你想了解更多细节,我前几天在博客上回答了这样的问题。 http://www.marcusoft.net/2011/11/bdd-and-technical-scenarios.html