这篇文章的原作者感觉有一些不太适合或者过期的地方,已经修正,代码放入了我的 github 中,运行成功后的代码,大家如果能直接下载看懂,就不用看文章了~节约时间嘛,如果想看看文章的可以继续。
这篇文章和之前写的 TypeScript + TDD 那篇不一样的是更加简单,直接测试,不需要其他什么多余配置。
TypeScript 是让我着迷的,我最近需要开始准备使用 TypeScript 来编写项目,并且需要测试。在这篇文章中,我将解释如何开始一个简单的测试,在我们使用 TypeScript 来编写的时候,其中,我们能使用 TypeScript 的 import 语法,以及类型接口来帮助我们。
我们有大量的 JavaScript 测试工具和框架,比如:mocha、jasmine等等。主要是 BDD/TDD 的方式来运行测试。他们能使使用 node 自己的assert(断言)库, 或者其他扩展的断言库,比如 chai。我当前实现选择的是 mocha 和 chai,因为他们和我想要的一样,容易配置和运行 TypeScript 的测试。我是尝试过 Jasmine 但是我不能像我想的那样工作(可能是因为我缺乏如何使用的窍门)。如果能使用 Jasmine 来配置,将是很棒的。
值得注意的是:以下的是跨平台的,因此只要你在代码中看到
$
标记,表示是运行在你的终端中,比如 Mac 的 Terminal,Ubuntu/Linux 的 Shell,Windows 的 CommandPrompt/PowerShell 之中。
我是使用 mocha 作为我们的测试框架或者测试运行器,以及 chai 作为我们的断言库。我们将使用第三方库 ts-node 帮助我们运行 TypeScript 的测试。我们将它们作为开发依赖进行全局安装。
$ npm install mocha chai ts-node typescript --save-dev
在我们写 TypeScript 测试之前(后面就不这样翻译了,直接翻译成测试吧,比较和语言不想关联太多),对于我们的测试框架和断言库,他们是有点讨厌类型声明,真是这样么?让我们用 typings 来做这个事。尽管你可能用过这个开发 TypeScript。它是一个定义类型的管理者,用来做 TypeScript 的类型判断。让我们现在来安装它:
$ npm install typings --save-dev
现在我们装好了 typings, 让我们开始建立一些必要的类型定义。我们将 mocha 作为全局模块(我们在使用它的时候不需要导入),以及 chai 直接依赖(我们需要在测试中导入它)。我们将从 DefinitelyTyped 安装 mocha 的类型定义,这是一个类型定义的库,然后我们将使用 npm registry 来安装 chai 的类型定义.
/* 不按这种方式了,不好用,使用接下来的方式 */
$ typings install dt~mocha --global --save
$ typings install npm~chai --save
在 TypeScript 2.0 中,我们能够用其他方式来添加类型定义,因此我们也能够用下面的方式来替代之前提到的 typings 安装的方式。新的方式不依赖 typings npm package 或者 module(包和模块).我们将使用下面的命令:
$ npm install @types/chai @types/mocha --save-dev
为了解释测试,让我写一些基本的 hello world 函数。我只测试一个 function,因此我是指需要创建一个返回 "Hello World" 字符串的函数。
/* src/hello.ts */
export function hello(): string {
return 'Hello World!';
}
export default hello;
让我们写一个测试,现在我们需要一个测试方法:
/* src/__test__/hello-test.ts */
import hello from '../hello';
import { expect } from 'chai';
import 'mocha';
describe('Hello function', () => {
it('should return hello world', () => {
const result = hello();
expect(result).to.equal('Hello World!');
});
});
让我们使用 nom run test 来运行我们的测试。我们只需要调用 mocha
和 ts-node
。编辑 package.json
{
"scripts": {
"test": "./node_modules/.bin/mocha -r ./node_modules/ts-node/register src/__test__/**/*.ts"
},
}
我只给 mocha
注册了 ts-node
,以及最后参数是定义 mocha
应该运行测试的 src
文件夹中的 test.ts
。你能够根据你的项目情况进行修改。
简单的测试结果:
博客原文:http://60sky.com/post/typescript-simple-test.html
扫码关注w3ctech微信公众号
共收到0条回复