BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 Jan Stenberg 关注 34 他的粉丝 ,译者 李彬 关注 1 他的粉丝 发布于 2014年2月11日. 估计阅读时间: 2 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

工具支持 by 赵 zack

cucumber.js结合JavaScript来做BDD的自动化测试确实不错,推荐一款开发工具 CukeTest 可以在可视界面中编写feature,支持一键生成自动化代码样例。可以快速开发BDD的自动化脚本。下载cuketest.com

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT