抖音技术能力大揭密!钜惠大礼、深度体验,尽在火山引擎增长沙龙,就等你来! 立即报名>> 了解详情
写点什么

使用 CucumberJS,让 JavaScript 与行为驱动开发结合

2014 年 2 月 10 日

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

2014 年 2 月 10 日 01:212519
用户头像

发布了 256 篇内容, 共 52.8 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

合约跟单系统开发,合约跟单软件定制开发

13530558032

手把手带你写Node.JS版本小游戏

华为云开发者社区

Java node.js Node 华为云 剪刀石头布

Spring 5 中文解析核心篇-IoC容器之基于Java容器配置

青年IT男

Spring5 Spring Framework

Spring 5 中文解析核心篇-IoC容器之AOP编程(下)

青年IT男

Spring5 Spring Framework

敏捷转型谁先动:老总,项目经理or团队

华为云开发者社区

项目管理 敏捷 敏捷开发 团队 华为云

Spring 5 中文解析核心篇-IoC容器之AOP编程(上)

青年IT男

Spring5 Spring Framework

CSS常用样式——绘制各种角度的三角形(1)

程序员学院

CSS css3 CSS小技巧

Spring 5 中文解析核心篇-IoC容器之Environment抽象

青年IT男

Spring5 Spring Framework

软件工程开发之道:了解能力和复杂度是前提

华为云开发者社区

软件工程 开发 项目 代码 复杂度

基于环信sdk在uni-app框架中快速开发一款多平台社交Demo

环信

企业表格技术与风险指标补录系统

Geek_Willie

SpreadJS

Spring 5 中文解析核心篇-IoC容器之JSR330标准注解

青年IT男

Spring5 Spring Framework

区块链支付系统开发,数字货币支付承兑商APP模式搭建

13530558032

区块链usdt承兑商支付系统开发 区块链应用开发

电微13828808271

USDT承兑支付系统开发

长期坚持运动,生活真的改变了吗?

金龟换酒

读书 运动 健身

Spring 5 中文解析核心篇-IoC容器之SpEL表达式

青年IT男

Spring5 Spring Framework

Spring 5 中文解析核心篇-IoC容器之类路径扫描和组件管理

青年IT男

Spring5 Spring Framework

从RainbowBridge看Js与Java交互中的安全漏洞

OPPO安全

安全 安全漏洞

为什么企业自主开发软件时,都会使用统一的模块化框架式开发平台?

Philips

敏捷开发 代码优化 框架设计 框架开发 标准框架

Spring 5 中文解析核心篇-IoC容器之基于注解的容器配置

青年IT男

Spring5 Spring Framework

Spring 5 中文解析核心篇-IoC容器之ApplicationContext与BeanFactory

青年IT男

Spring5 Spring Framework

日防夜防,“隐私窃贼“难防? 手把手教你如何使用OPPO手机管理应用权限

OPPO安全

安全 隐私保护 数据隐私 sdk

Redis 持久化 --RDB

是老郭啊

redis redis持久化 aof rdb

手把手教程:基于环信4小时开发一个视频会议APP【附源码】

环信

车队管理软件

samhuang

区块链数字货币交易所开发,数字交易平台搭建

13530558032

iWebExcel 协同数据填报和在线分析平台

Geek_Willie

SpreadJS

Spring 5 中文解析核心篇-IoC容器之自定义Bean性质

青年IT男

Spring5 Spring Framework

Spring 5 中文解析核心篇-IoC容器之Spring AOP API

青年IT男

Spring5 Spring Framework

数字货币钱包软件开发方案,区块链数字货币钱包源码

13530558032

Spring 5 中文解析核心篇-IoC容器之BeanDefinition继承与容器拓展点

青年IT男

Spring5 Spring Framework

Study Go: From Zero to Hero

Study Go: From Zero to Hero

使用CucumberJS,让JavaScript与行为驱动开发结合-InfoQ