09月21, 2016

使用 TypeScript + TDD 快速开发的配置

1. 你需要一个好的工具来写测试

对于大多数开发者来说,都不太喜欢编写测试。当你在编写测试的周期的时候,能有一个快速的效应时间,那么这件事将变得更容易。结合一个好的测试框架你会有一个更好的开始。

测试驱动开发(TDD, Test-driven development)是一种你编写单元测试和应用程序代码的软件开发方法。典型的就是写一个空的根方法,创建一个失败的测试来验证不存在的程序逻辑,直到全部的程序逻辑测试都变成绿色。最后,在你 push 你的提交前重构你的代码。

让我们创建一个基于 TypeScript 的 TDD 配置。

2. 立即运行,并且只显示失败的结果

大量的 IDE 都支持单元测试和测试驱动开发,但是大多数开发者使用文本编辑器编写 JavaScript。我们需要一个命令行的方式去创建一个快速的 TDD 配置。

它应该是:

  1. 改变的时候立即运行测试,因此我们只需要在保存文件的时候启动测试;
  2. 它应该只显示失败测试结果,因为我们的屏幕不是特别大,不能显示 100 个成功的测试(虚词)。

还有一个需要我们也关心的地方,如果在运行测试之前没有通过,这时候又开始一个新的测试,我们就需要停止前一个测试。这是 grunt + mocha 不能处理的。

3. 使用 TypeScript 建立快速的 TDD

我们需要的配置如下:

  1. 它需要工作在命令行;
  2. 能够 watch 文件的改变;
  3. 编译 TypeScript 和 运行测试用例;
  4. 前一个没通过的测试将被停止;
  5. 只显示失败的测试结果。

使用一个 gaze-run-interrupt 的 npm 包来 watch 文件的改变,并且出发一系列命令,也能 kill 前面的序列。还将使用 Mocha 和它的 min-reporter 功能来显示失败的测试。

配置步骤

  1. 在你的 package.json 文件中添加 gaze-run-interrupt 开发依赖(devDependency
  2. 在你的项目结构中,加入一个 tdd 文件,并且给它执行权限。

#!/usr/bin/env node

var gaze_run_interrupt = require("gaze-run-interrupt");

gaze_run_interrupt("{src,test}/**/*.ts", [{
  command: "node_modules/.bin/tsc"
}, {
  command: "../../node_modules/.bin/mocha",
  args: ["--reporter", "min"],
  cwd: "dist/js"
}]);
  1. 执行 TDD
node tdd

最后执行效果:

TDD 效果

原文出自:http://bytearcher.com/articles/fast-tdd-setup-for-typescript/

注:原文的代码需要输入邮箱,我自己手敲了一下,放在 github tdd_demo 还有就是原文中的配置可以根据 vscode 工具进行优化,还有脚本的方式我修改为了 node 脚本执行的方式,其实有其它更好的方式,但是这篇文章主要是说明一种快速 TDD 软件开发的方式。

本文链接:http://www.60sky.com/post/typescript-fast-tdd.html

-- EOF --

Comments