我们正在构建一个新的应用程序,我们正在考虑使用哪些测试框架。我们想要做两种类型的测试:
我的想法是,(1)我们使用JUnit,而(2)我们使用Cucumber。我没有黄瓜的经验。我的问题是可以用一个像Cucumber这样的框架来实现(1)和(2),或者如上所述将它们分开是最佳实践。
答案 0 :(得分:2)
我倾向于同意您的评估,即JUnit(或其他单元测试框架)最适合第1类,而Cucumber非常适合第2类。黄瓜是编写自然语言(或多或少)规范的框架(用Gherkin语言),因此它的优势在于编写可执行的应用程序规范。
对于纯粹的技术测试,为了实施最大的测试覆盖率,您实际上只是通过在业务级语言(Gherkin / Cucumber)中编写测试来使自己变得更加困难。用例如编写测试JUnit将减少摩擦力。
为了更好地理解Cucumber及其在开发链中的作用,与其他(BDD)工具(例如RSpec)相比,我建议阅读The RSpec Book。特别是,它建议RSpec(更类似于xUnit框架)用于测试系统的隔离部分,而Cucumber用于测试整个应用程序。本书特别有价值,因为它是由所述工具的创建者(RSpec / Cucumber)创作的,因此您可以了解这些工具如何用于。
示例Cucumber规范,测试本身在Scenario
块内:
Feature: Serve coffee
Coffee should not be served until paid for
Coffee should not be served until the button has been pressed
If there is no coffee left then money should be refunded
Scenario: Buy last coffee
Given there are 1 coffees left in the machine
And I have deposited 1$
When I press the coffee button
Then I should be served a coffee