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文件格式如下:
     
     1: Feature: Some terse yet descriptive text of what is desired
     2:   In order to realize a named business value
     3:   As an explicit system actor
     4:   I want to gain some beneficial outcome which furthers the goal
     5: 
     6:   Scenario: Some determinable business situation
     7:     Given some precondition
     8:       And some other precondition
     9:      When some action by the actor
    10:       And some other action
    11:       And yet another action
    12:      Then some testable outcome is achieved
    13:       And something else we can check happens too
    14: 
    15:   Scenario: A different situation
    16:       ...

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

     
    园子有人对Gherkin的语法也有很详细的解释建议进一步阅读:http://www.cnblogs.com/puresoul/archive/2011/12/28/2305160.html
     
     
    建议阅读:
     
    扩展阅读:
     
    欢迎斧正,定当虚心改正。
     
    题外话:
    demo正在制作中,后续就在学习BDD中遇到的问题也会分享出来。
     
  • 相关阅读:
    centos设置系统时间
    ubufntu 11.10启动不了nautilus的问题解决
    centos中用crontab定时执行java程序
    试用ubuntu里画流程图,架构图工具
    内嵌在客户端的网页出现刷新问题
    lenovo e23在ubuntu下打开无线网卡的办法
    mysql workbench for ubuntu测试
    有关Java多态
    我是程序猿,一个新的开始......
    有关数组的几种排序
  • 原文地址:https://www.cnblogs.com/kids/p/Gherkin.html
Copyright © 2011-2022 走看看