🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 什么是黄瓜特征文件&步骤定义? (带有示例) > 原文: [https://www.guru99.com/cucumber-basics.html](https://www.guru99.com/cucumber-basics.html) 对于每个黄瓜项目,在项目的根目录都有一个名为“ **features** ”的目录。 这是您所有黄瓜功能所在的位置。 在此目录中,您将找到其他目录,它们是 **step_definition** 和**支持目录** ## **什么是“功能文件”?** 功能文件以简单语言包含测试方案的高级描述。 它被称为小黄瓜。 小黄瓜是一种普通的英语文字语言 功能文件包含以下组件- * **功能**:功能将描述必须执行的当前测试脚本。 * **场景**:场景描述了特定测试案例的步骤和预期结果。 * **方案大纲**:可以使用方案大纲对多个数据集执行相同的方案。 数据由以(I I)分隔的表格结构提供。 * 给定的**:它指定要执行的文本的上下文。 通过使用数据表“给定”,还可以对步骤进行参数化。** * **When** :“ When”指定必须执行的测试操作 * **然后**:测试的预期结果可以用“然后”表示 **示例功能文件示例:** ``` 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](https://img.kancloud.cn/8c/2f/8c2f478b5aa156e66739e11ef6f2355e_500x326.png "Cucumber Basics") ## **什么是“步骤定义”?** 步骤定义将功能文件(由 Given / When / Then 引入)中的测试用例步骤映射到代码。 它执行被测应用程序上的步骤,并根据预期结果检查结果。 为了执行步骤定义,它必须与特征中的给定组件匹配。 步骤定义在 ruby 文件中的“功能/step_definitions/*_steps.rb”下定义。 **步骤定义**的示例:在这里,我们将在上面浏览 career.guru99.com 的示例中进行操作。我们将使用“何时,然后,给定”等功能 ``` 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 ``` 摘要: * 您需要 2 个文件-功能和步骤定义来执行 Cucmber 测试方案 * 功能文件以简单语言包含[测试场景](/test-scenario.html)的高级描述 * 步骤定义文件包含在功能文件中执行测试方案的实际代码。