转载自: http://www.infoq.com/cn/news/2014/02/bdd-cucumberjs

Todd Anderson最近发表了一篇博客文章,介绍了新兴工具CucumberJS:面对基于JavaScript的项目,向其TDD(测试驱动开发)工作流中添加CucumberJS,有助于让项目与行为驱动开发的理念相结合。从而使得开发者在自外而内进行开发的同时,遵循TDD准则;并且还将运行自动化的测试,以确保在实现了支持某个特性的代码后,测试才会得出通过的结果。

Todd从事应用开发工作,并与人合著了三本书(点击查看)。他将CucumberJS描述成一种介于BDD工具Cucumber与JavaScript之间的接口,它能够运行在NodeJS上和现代网络浏览器中。CucumberJS支持使用Gherkin来撰写特性说明的定义,而并使用命令行工具来运行这些说明。该命令行工具将针对组成说明的各个步骤或场景,报告其结果是通过还是失败。他还提到,尽管Cucumber目前仅仅是测试框架,但开发者可以根据需要来引入断言库,令这些步骤通过或是失败。

Todd以一个杂货清单应用中的某特性为例,展示了如何使用Cucumber来适应BDD:

特性:购物者能够将某项物品添加到其杂货清单

场景:物品添加到杂货清单

假定(Given)现在我的杂货清单是空的

当(When)我向其中添加一项物品时

则(Then)该杂货清单将包含单一的一项物品

该特性定义了一项业务价值,而该场景则定义了提供该价值的步骤。每个场景都包含一系列的步骤,它们由一些关键词来定义:假定、当……时、则(Given, When, Then);而CucumberJS将阅读特性说明,而后执行这些步骤。

针对结合Node.JS来使用CucumberJS的话题,Todd给出了一些示例,在示例中测试经过了从失败到通过的过程,与此同时它们也实现并运行了杂货清单应用。

在总结中,Todd深信:当进行重构和Bug修复时,使用测试套件管理并测试代码,将会获得回报;同时他表示将继续发表一系列新的文章,以展示如何结合浏览器来使用CucumberJS进行测试。

行为驱动开发的概念,最初由 Dan North在2006年提出。Cucumber则是一个用于行为驱动开发的开源工具,目前支持包括JavaScript在内的九种编程语言。

查看英文原文:BDD and JavaScript Using CucumberJS

转载于:https://www.cnblogs.com/yuanchunli/articles/7590863.html

使用CucumberJS,让JavaScript与行为驱动开发结合相关推荐

  1. 优美的测试代码 - 行为驱动开发(BDD)

    可理解的代码非常重要,测试代码也是如此.在我看来,优秀的测试代码,必须做到一个重要的事情就是保持测试逻辑的清晰.一个完整的测试案例通常包括三个部分: 1. SetUp 2. Exercise 3. V ...

  2. 测试驱动开发 测试前移_测试驱动开发:它是什么,什么不是。

    测试驱动开发 测试前移 by Andrea Koutifaris 由Andrea Koutifaris Test driven development has become popular over ...

  3. 行为驱动开发BDD和Cucunber简介

    测试驱动开发(TDD) 1.测试驱动开发,即Test-Driven Development(TDD),测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论.TDD的原理是在开发功能代码之前 ...

  4. 安信Windows驱动开发教程:什么是通用 Windows 平台 (UWP) 应用程序?有什么功能?

    安信Windows驱动开发教程:什么是通用 Windows 平台 (UWP) 应用程序?有什么功能? UWP 是为 Windows 创建客户端应用程序的众多方法之一.UWP 应用使用 WinRT AP ...

  5. VxWorks设备驱动开发指南--VxBus And VxBus Device Driver

    8D Spaces Reliability & Stability & Efficiency 目录视图 摘要视图 订阅 VxWorks设备驱动开发指南(二)--VxBus And Vx ...

  6. 0、Spring 注解驱动开发

    0.Spring注解驱动开发 0.1 简介 <Spring注解驱动开发>是一套帮助我们深入了解Spring原理机制的教程: 现今SpringBoot.SpringCloud技术非常火热,作 ...

  7. Android深度探索与驱动开发(一)

    Android移植可分为两个部分:应用移植和系统移植.应用移植是指将应用程序移植到某一特定硬件平台上.由于不同硬件平台之间的差异,Android SDK API也有可能存在差异,或者将应用程序从低版本 ...

  8. 测试驱动开发与行为驱动开发中的测试先行方法

    Gil Zilberfeld将在 Agile Practitioners会议上举办小型研讨会,讨论测试先行(test first)方法,测试驱动开发(TDD)和行为驱动开发(BDD)的基础. \\ \ ...

  9. Android深度探索--HAL与驱动开发----第一章读书笔记

    1.1   Android拥有非常完善的系统构架可以分为四层: 第一层:Linux内核.主要包括驱动程序以及管理内存.进程.电源等资源的程序 第二层:C/C++代码库.主要包括Linux的.so文件以 ...

最新文章

  1. Linux系统编程@文件操作(一)
  2. springCloud-4.RestTemplat的使用(两个client之间的调用)
  3. 预训练模型需要知道的知识点总结,万字长文带你深入学习(建议收藏)
  4. boost::allocate_shared相关的测试程序
  5. 【若依(ruoyi)】layui upload
  6. linux 读取文件夹命令,Linux系统编程_1_文件夹读取(实现简单ls命令)
  7. 数据挖掘—K-Means算法(Java实现)
  8. Python3.8安装 jupyter报错 NotImplementedError
  9. 计算机如何连接iphone,iPhone6如何连接到电脑?iPhone6连接到电脑图解教程
  10. 新版Space数字藏品源码+NFT数字藏品系统
  11. 2021年上半年软考真题数据库系统工程师真题
  12. 寒江独钓 Windows内核安全编程
  13. Android:从assets资源目录下安装apk
  14. Java专项练习二(选择题)
  15. LRE板卡交换机在轨交CBCT系统中的应用
  16. 【2021中国科创好公司】评选榜单重磅发布!常垒资本投资“威努特”和“捷配”入选!...
  17. 如何读一个JavaWeb项目源代码
  18. 激活试用60天office2007的步骤
  19. 浅析webmatrix建站
  20. 网格交易 python_VNPY网格交易法优化

热门文章

  1. php 页面上显示xls文档,phpExcel输出xls文档显示乱码的解决方法
  2. linux dlopen 源码,采用dlopen、dlsym、dlclose加载动态链接库
  3. oracle中sysdate函数 ro,ORACLE常用函數
  4. 大数据要学javaweb吗_大数据是私有财产吗?
  5. 卷积过滤器的宽度_卷积神经网络简析
  6. idea 调试java技巧_Intellij IDEA Debug 调试技巧
  7. Tensorflow实现简单的手写数字神经网络模型
  8. Kubernetes 权限管理
  9. Android API级别、代号、发布时间及平台亮点整理
  10. Spring AOP实现声明式事务代码分析