什么是 Cucumber Feature 文件和步骤定义?(示例)

对于每个 Cucumber 项目,项目根目录下都有一个名为“features”的单一目录。所有 Cucumber 特性都将位于此目录中。在此目录中,您会找到额外的目录,即 step_definitionsupport 目录

什么是“特性文件”?

特性文件包含测试场景的高级描述,使用简单语言。它被称为 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

Cucumber Basics

什么是“步骤定义”?

步骤定义将特性文件(由 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 测试场景。
  • 特性文件包含用简单语言描述的测试场景的高级描述。
  • 步骤定义文件包含用于执行特性文件中测试场景的实际代码。