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 在内的九种编程语言。
评论