天天看点

使用Jest测试js代码

为什么使用Jest?

 1. Jest 可以利用其特有的快照测试功能,通过比对 UI 代码生成的快照文件,实现对 React 等常见框架的自动测试。此外, Jest 的测试用例是并行执行的,而且只执行发生改变的文件所对应的测试,提升了测试速度

 2.安装配置简单,非常容易上手,几乎是零配置的,通过npm 命令安装就可以直接运行了

 3. Jest 内置了测试覆盖率工具istanbul,可以通过命令开启或者在 package.json 文件进行更详细的配置。运行 istanbul 除了会再终端展示测试覆盖率情况,还会在项目下生产一个 coverage 目录,内附一个测试覆盖率的报告,让我们可以清晰看到分支的代码的测试情况。

 4. 集成了断言库,不需要再引入第三方的断言库,并且非常完美的支持React组件化测试。

安装Jest

  • 输入如下命令

    npm init -y

    ,在项目中进行初始化package.json
  • 全局安装Jest:输入如下命令

    npm install jest -g

使用Jest

 创建需要被测试的js文件文件(进行声明变量,并将其导出):

//声明变量
	const helloTest = "hello world";
	//打印该变量
	console.log(helloTest);
	//将其成员导出
	module.exports = helloTest
           

 创建文件夹名称为

__test__

,声明测试文件,文件名称最好符合规范为,测试文件名称+

.spec.js

,具体看图为例:

       

使用Jest测试js代码

 在

index.spec.js

中输入如下代码:

test("测试hello World", () => {
		//将index.js导出的变量赋值给ret
	    const ret = require("../index")
	    //断言
	    //如果ret等于hello world的话则认为断言成功,如果不等于的话则认为断言失败使得报错
	    expect(ret).toBe("hello world")
	}) 

           

 在控制台运行如下代码

jest helloworld

,语句中的helloworld代表文件夹,所以需要在hellowolrd文件夹的父级目录输入如下语句进行测试。测试结果:

使用Jest测试js代码

 代表断言成功,匹配到了ret变量中的hello world字符串。

结束

 有帮助的话就点个赞呗~

继续阅读