创建特征文件
最后修改时间:2023 年 9 月 5 日在 Cucumber 中,功能文件以Gherkin语言存储场景和步骤的高级描述。Gherkin 默认使用简单的英语并促进行为驱动的开发。
功能文件通常位于Test Resources Root下的features文件夹中。如果您没有测试资源的文件夹,则需要创建一个。
提示
您可以在此 GitHub 存储库中找到本主题的示例代码。
创建功能文件夹
右键单击 测试资源根目录并选择新建 | 目录。
为新文件夹命名
features
。
创建新的特征文件
在项目工具窗口中,右键单击功能文件夹并选择新建| 文件。
为新文件命名。您可以为其指定任何名称,但请确保使用.feature扩展名(例如,
BeerCans.feature
)。在“项目”工具窗口中,新文件将标有.
之后,您可以添加功能文件的代码并创建测试场景。
有关使用 Gherkin 的更多信息,请参阅Gherkin 语法。
当您键入时,IDE 会提供代码补全和即时检查以及快速修复功能,帮助您正确定义场景。例如,创建场景先于添加步骤定义。这就是为什么在这个阶段,这些步骤被突出显示为“未解决”。完成特征文件后,您可以使用一个快捷方式创建步骤定义。
Feature: Beer cans
Scenario: Counting beer cans
Given I have <opening balance> beer cans
And I have drunk <processed> beer cans
When I go to my fridge
Then I should have <in stock> beer cans
在步骤中,您可以使用三引号括起来的文本注释。在这种情况下,IntelliJ IDEA 将内部文本视为字符串并在运行步骤时显示它。
Feature: Beer cans
Scenario: Counting beer cans
Given I have <opening balance> beer cans
"""
Lorem ipsum dolor sit amet
"""
使用场景大纲中的示例表
该Scenario Outline
组件可用于Scenario
对多组数据运行相同的组件。该数据在表中定义,Examples
表头位于场景下方。
如果您想使用多个测试数据测试整个场景,请使用示例表。如果您需要将值列表传递给单步定义,请使用数据表。
要快速创建带有示例的表格:
将插入符号置于
Scenario Outline
并按。AltEnter从打开的列表中,选择“创建示例部分”。
IntelliJ IDEA 以正确的格式创建一个表,并在其中添加场景中的信息。之后,您可以在表格中填写必要的数据。
动画片代码Feature: Beer cans Scenario Outline: Counting beer cans Given I have <opening balance> beer cans And I have drunk <processed> beer cans When I go to my fridge Then I should have <in stock> beer cans Examples: | opening balance | processed | in stock | | 123 | 50 | 73 | | 1 | 1 | 0 |
您可以在使用变量和示例中找到有关如何使用该Examples
元素的更多信息。
使用另一种语言进行步骤
除了英语之外,您还可以使用其他语言和方言来描述功能文件中的步骤。要使用您的自定义语言,请添加# language: ...
到功能文件的第一行。例如,要使用德语,请输入# language: de
。
在本例中,我们使用澳大利亚英语来描述步骤:
# language: en-au
Pretty much: Beer cans
Reckon it's like: Counting beer cans
Y'know I have <opening balance> beer cans
Too right I have drunk <processed> beer cans
It's just unbelievable I go to my fridge
But at the end of the day I reckon I should have <in stock> beer cans
You'll wanna:
| opening balance | processed | in stock |
| 123 | 50 | 73 |
| 1 | 1 | 1 |
IntelliJ IDEA 在所有支持的口语中提供代码完成、检查、意图操作和其他编码辅助功能。有关语言的完整列表,请参阅Cucumber 文档中的口语语言。
感谢您的反馈意见!