Jest是常用的javascript测试框架。
typescript给javascript添加类型检查,typescript项目通常需要transpile成javascript运行。
Jest运行于nodejs之上,对于typescript,需要转换才能正常运行。
Jest对于typescript的集成,可以使用Babel和ts-jest两种方案。
通过Babel使用typescript
新建一个nodejs项目
添加一段ts代码,sum.ts
添加测试程序,文件名里面含有.spec.,Jest会自动发现运行。
安装jest,babel,以及babel-typescript
npm install --save-dev jest @babel/core @babel/preset-env @babel/preset-typescript
修改package.json的scripts设置
这样你就能使用
npm test
来运行测试。
对于WebStorm也可以配置一个Jest的运行配置
当然,现在还没有对Babel进行typescript的配置,所以运行测试会失败。
添加babel配置babel.config.js
这时候就能看到test case能够正常运行了。
尝试添加一个失败的testcase
运行结果如下:
还有一个问题需要解决,就是sum.spec.ts的类型在WebStorm不能被识别,所以需要安装@types/jest库。
npm install --save-dev @types/jest
安装完成后,WebStorm里面就能正常识别那些test函数了。
通过ts-jest使用typescript
ts-jest使用typescript官方编译器来对typescript代码做转换。
首先新建jest-ts-jest项目,然后把刚才的sum.ts和sum.spec.ts复制过来。
接着安装依赖包,typescript, jest, @types/jest, ts-jest
npm install --save-dev typescript jest @types/jest ts-jest
运行tsc来添加一个默认的typescript配置文件
npx tsc --init
这个时候运行jest,还是会报错的,因为jest默认使用的babel,需要添加jest配置让他使用ts-jest。
命令行运行下面的命令生成一个jest配置文件
npx ts-jest config:init
可以看到新生成的配置文件jest.config.js
这时就能正常使用Jest运行单元测试了。
本文暂时没有评论,来添加一个吧(●'◡'●)