zoukankan      html  css  js  c++  java
  • Gherkin学习笔记

    前言
    由于项目准备使用BDD模式开发,所以最近在学习BDD,同时也记录下自己的学习点滴。
    参考原文:https://github.com/cucumber/cucumber/wiki/Gherkin
     
    Gherkin是什么
    Gherkin,Cucumber解释器可以理解的语言。这是一个商业可读性,领域特定语言,描述软件的行为而不需要关心这个行为的如何实现的。
     
    Gherkin有两个目的 - 文档和自动化测试。第三个额外特色:当它被标记为红色叉叉时,让你知道接下来的代码如何写。
     
    Gherkin的语法定义为Treetop语法(Treetop——基于Ruby的PEG解析器生成器)所以可以被Cucumber解释执行(Cucumber是一个解释程序,就像ruby命令执行解释 .rb文件里的Ruby代码一样,Cucumber用来执行解释 .feature文件里的Gehrkin代码。)。该语法适用在不同的语言中,让您的团队可以使用自己的语言中的关键字。
     
    个人理解:
    Gherkin是一种语法,使用 Given,when,then等关键来描述一个User Story。形成的代码不论是User,BA都能读懂的形式,同时也非常便于使用specflow转化成BDD所需要的文件。
     
    通用约定
    ->Gherkin的单个文件包含对一个功能点的描述
    ->源文件使用.feature 作为扩展名
     
    Gherkin语法
    像Python和YAML,Gherkin是一种面向行的语言,使用缩进来定义结构。行结尾终止语句(例如,步骤)。空格或制表符可用于缩进(但空格更方便些),每一行以关键字开始。
     
    注释允许出现在文件的任何一行,但是要以‘#’开始,仅支持单行注释。
     
    当你开始运行一个行为时,feature关键字的后面部分,也就是详细步骤,这是一段Ruby风格的代码片段,会被解析器分析出所有的功能,情景和步骤。
     
    Gherkin文件格式如下:
    Feature: Some terse yet descriptive text of what is desired
      In order to realize a named business value
        As an explicit system actor
       I want to gain some beneficial outcome which furthers the goal
    
       Scenario: Some determinable business situation
         Given some precondition
          And some other precondition
         When some action by the actor
         And some other action
          And yet another action
        Then some testable outcome is achieved
           And something else we can check happens too
    
       Scenario: A different situation
    

      

    一个文件中允许出现多个 Scenario段

     
    园子有人对Gherkin的语法也有很详细的解释建议进一步阅读:http://www.cnblogs.com/puresoul/archive/2011/12/28/2305160.html
     
     
    建议阅读:
     
    扩展阅读:
    ------------------------- A little Progress a day makes you a big success... ----------------------------
  • 相关阅读:
    Vue实现上下整屏滚动效果
    Vue实现选项卡切换效果
    Vue中在main.js中引入字体图标问题
    Vue中的生命周期beforeDestory不触发问题
    Vue中解决移动端点击300毫秒延迟的问题
    Vue中全局和按需引入Echarts
    Vue组件间的通信
    Echarts图表属性设置
    JZOJ 6799. 【2014广州市选day2】game
    JZOJ 6798. 【2014广州市选day2】regions
  • 原文地址:https://www.cnblogs.com/qianjinyan/p/14469653.html
Copyright © 2011-2022 走看看