使用 TypeScript + TDD 快速开发的配置
AshtonCotte
8年前
<p style="text-align:center"><img src="https://simg.open-open.com/show/d4f2cb57379bf4f7ff2943d77622293f.gif"></p> <h3><strong>1. 你需要一个好的工具来写测试</strong></h3> <p>对于大多数开发者来说,都不太喜欢编写测试。当你在编写测试的周期的时候,能有一个快速的效应时间,那么这件事将变得更容易。结合一个好的测试框架你会有一个更好的开始。</p> <p>测试驱动开发(TDD, Test-driven development)是一种你编写单元测试和应用程序代码的软件开发方法。典型的就是写一个空的根方法,创建一个失败的测试来验证不存在的程序逻辑,直到全部的程序逻辑测试都变成绿色。最后,在你 push 你的提交前重构你的代码。</p> <p>让我们创建一个基于 TypeScript 的 TDD 配置。</p> <h3><strong>2. 立即运行,并且只显示失败的结果</strong></h3> <p>大量的 IDE 都支持单元测试和测试驱动开发,但是大多数开发者使用文本编辑器编写 JavaScript。我们需要一个命令行的方式去创建一个快速的 TDD 配置。</p> <p>它应该是:</p> <ol> <li>改变的时候立即运行测试,因此我们只需要在保存文件的时候启动测试;</li> <li>它应该只显示失败测试结果,因为我们的屏幕不是特别大,不能显示 100 个成功的测试(虚词)。</li> </ol> <p>还有一个需要我们也关心的地方,如果在运行测试之前没有通过,这时候又开始一个新的测试,我们就需要停止前一个测试。这是 grunt + mocha 不能处理的。</p> <h3><strong>3. 使用 TypeScript 建立快速的 TDD</strong></h3> <p>我们需要的配置如下:</p> <ol> <li>它需要工作在命令行;</li> <li>能够 watch 文件的改变;</li> <li>编译 TypeScript 和 运行测试用例;</li> <li>前一个没通过的测试将被停止;</li> <li>只显示失败的测试结果。</li> </ol> <p>使用一个 gaze-run-interrupt 的 npm 包来 watch 文件的改变,并且出发一系列命令,也能 kill 前面的序列。还将使用 Mocha 和它的 <em>min-reporter</em> 功能来显示失败的测试。</p> <p>配置步骤</p> <ol> <li>在你的 package.json 文件中添加 gaze-run-interrupt 开发依赖( <em>devDependency</em> )</li> <li>在你的项目结构中,加入一个 tdd 文件,并且给它执行权限。</li> </ol> <pre> <code class="language-typeScript">#!/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' }]);</code></pre> <ol> <li>执行 TDD</li> </ol> <pre> <code class="language-typeScript">./tdd</code></pre> <p>开始写高质量的代码-伴随测试。</p> <p> </p> <p>来自:http://www.zcfy.cc/article/fast-tdd-setup-for-typescript-1580.html</p> <p> </p>