什么是 Cucumber Feature 文件和步骤定义?(示例)
对于每个 Cucumber 项目,项目根目录下都有一个名为“features”的单一目录。所有 Cucumber 特性都将位于此目录中。在此目录中,您会找到额外的目录,即 step_definition 和 support 目录。
什么是“特性文件”?
特性文件包含测试场景的高级描述,使用简单语言。它被称为 Gherkin。Gherkin 是一种纯英语文本语言。
Cucumber 特性文件包含以下组件:
- 特性:特性描述了需要执行的当前测试脚本。
- 场景:场景描述了特定测试用例的步骤和预期结果。
- 场景大纲:使用场景大纲可以对多组数据执行相同的场景。数据由表格结构提供,并由 (I I) 分隔。
- Given (已知):它指定要执行文本的上下文。通过使用数据表,“Given”步骤也可以参数化。
- When (当):“When”指定了要执行的测试动作。
- Then (那么):测试的预期结果可以用“Then”表示。
接下来,我们将通过示例学习如何在 Cucumber 中编写特性文件。
示例特性文件
Feature: Visit career guide page in career.guru99.com Scenario: Visit career.guru99.com Given: I am on career.guru99.com When: I click on career guide menu Then: I should see career guide page
什么是“步骤定义”?
步骤定义将特性文件(由 Given/When/Then 引入)中的测试用例步骤映射到代码。它在被测应用程序上执行这些步骤并检查结果是否符合预期。为了执行步骤定义,它必须与特性中给定的组件匹配。步骤定义在“features/step_definitions/*_steps.rb”下的 Ruby 文件中定义。
步骤定义示例:在这里,我们将使用上述 Cucumber 特性文件示例,即浏览 career.guru99.com。我们将使用“When”、“Then”、“Given”等特性,如下面的 Cucumber 特性文件示例所示。
Step 1: Given (/^ I am on career.guru99.com$/) do Browser.goto "http://career.guru99.com" -This will visit career.guru99 on browser end Step 2: When (/^ click on career guide menu$/) do Browser.text (:name, " career guide" ).click – This will click "career guide menu" end Step 3: Then (/^ I should see career guide page$/) do Browser.goto "http://career.guru99.com/category/career-guide/" - It will visit "career guide page" end
摘要
- 您需要两个文件——特性文件和步骤定义文件,才能执行一个 Cucumber 测试场景。
- 特性文件包含用简单语言描述的测试场景的高级描述。
- 步骤定义文件包含用于执行特性文件中测试场景的实际代码。