cucumber之Gherkin入门

什么Cherkin

Gherkin,Cucumber解释器可以理解的语言。这是一个商业可读性,领域特定语言,描述软件的行为而不需要关心这个行为的如何实现的。
Gherkin 是一种自然语言,使用一组特殊的关键字来为可执行规范赋予结构和意义。
在我的理解里,Gherkin是Cucumber作为BDD(行为驱动开发)的自动化框架的核心,因为Gherkin的描述基本接近于User Story,通过Gherkin文档,可以让业务人员、开发人员、测试人员或者其他方的人员通过同一份文档对需求的结果理解达成一致。确保产品的特性能够被正确设计和实现出来

Gherkin的语法和关键字

关键字

主要关键字

  • Feature //特性,每个Gherkin的文件都必须使用Feature开头
  • Rule(as of Gherkin 6)
  • -Example (or Scenario)
  • Scenario //场景
  • Given //给定条件
  • When //当…时候
  • Then //结果
  • And //然后
  • But //但是
  • Background //背景
  • Scenario Outline (or Scenario Template) //与Examples配合使用
  • Examples //例子

次要的关键字:

  • “”" (Doc Strings)

  • | (Data Tables)

  • @(Tags)

  • #(Comments)

各个关键字的意义和使用格式可以参考 Gherkin(小黄瓜) 参考文档
该文档是对cucumber使用Gherkin语法说明的官方内容做了翻译官方链接

语法要求总结

不一定全,自己的学习过程总结

  1. 不是空行的每一行都必须以Cherkin的关键字开头,然后是您喜欢的任何文本。feature后面可以有多行的描述文本,不做限制
  2. 可以使用空格或制表符进行缩进。推荐的缩进级别是两个空格。
  3. 注释行在文件的任何地方都是允许的。它们以零或多个空格开始,然后是一个散列符号(#)和一些文本。注释必须从新的一行开始。
  4. 一个.feature文件只能有一个feature关键字
  5. 我用的Gherkin 5,支持Rule关键字,但是必须有Scenario关键字。语法仅使用Rule和Example 搭配不支持。按照文档Gherkin 6应该是支持的

例子

Feature: Highlander
  This is for test

  Rule: There can be only One

    Scenario: Only One -- More than one alive
      Given there are 3 ninjas
      And there are more than one ninja alive
      When 2 ninjas meet, they will fight
      Then one ninja dies
      And there is one ninja less alive
Feature: Is it Friday yet?
  EveryBody wants to know when it's Friday

  Scenario Outline: Sunday isn't Friday
    Given  today is ""
    * I ask whether it's Friday yet
    * I should be told ""

    Examples:
      | day            | answer |
      | Friday         | TGIF   |
      | Sunday         | Nope   |
      | anything else! | Nope   |

你可能感兴趣的:(测试)