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

  • Jan Stenberg
  • 李彬

2014 年 2 月 10 日

话题:JavaScript语言 & 开发

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

JavaScript语言 & 开发