问题 我应该在单元测试级别使用specflow吗? [重复]


可能重复:
用于单元测试的SpecFlow / BDD? 

在过去的几年里,我使用NUnit / Moq在TDD工作,在过去的几个月里,我一直在使用mSpec来处理BDD。

到目前为止一直很好,但我们现在希望更多地转向基于验收标准的测试,其中涉及业务分析师,我们在开发过程中获得了外部。

所以现在我们已经预定义了Gherkin语法文件,并且使用specflow感觉它是正确的工作方式。

但是,在具有预定义Gherkin文件的单元测试级别上,将违背我对TDD的理解。换句话说,您可以设计一个长期用行为来改进设计的设计。

由于我们正在使用外部方法,现在在单元测试级别可能是我们现在具有现在可用于驱动我的单元测试的规范/行为(只是觉得它与我一直在做TDD的方式相反) )?

之前这些文件对于验收测试很重要,但作为开发人员,我将独自工作,除非我使用SpecFlow,否则它们不是必需的。

当我们使用mspec时,我们在具有GWT文件的单元测试级别有什么好处?开发人员应该能够直接跳转到代码并阅读测试,或者只是运行测试运行器来查看它正在做什么。

TIA JD


12371
2017-11-23 12:51


起源

是的,你可能是对的。我只是想要一些澄清,我没有必要在我测试/设计的每个阶段一直创建GWT文件。 :)。 - JD.
滚动到底部 - 我写这样的单位级GWT。无论如何,观众纯粹是技术性的: code.google.com/p/wipflash/source/browse/... - Lunivore
谢谢。这已经清理了很多。单元级别的可执行规范的想法让我感到困惑。显然它不是必需的,但是你在示例中显示的方式,你可以使用类似的措辞,这将有所帮助。 - JD.
对于SO主持人:我实际上认为这个问题及其接受和回答比作为欺骗的问题更好。我宁愿看到另一个问题也没有了,而且这个问题仍然存在。 - fourpastmidnight


答案:


我的自发答案是否定的。

BDD的主要优点以及specflow和Cucumber等工具是与项目的利益相关者进行沟通,并创建对要构建的内容的共同理解。

TDD的主要好处是通过解决方案实现采取一些小步骤,确保您构建可维护且优秀的代码。

或者如果你想; BDD旨在确保我们正在构建正确的东西,TDD就是确保我们正确地构建它。

如果你想了解更多细节,我前几天在博客上回答了这样的问题。 http://www.marcusoft.net/2011/11/bdd-and-technical-scenarios.html


14
2017-11-24 12:56



谢谢。刚刚去了你的网站,精彩的博客充满了信息。 - JD.
先生,谢谢JD先生。 - Marcus Hammarberg