js高级进阶之单元测试jest使用

如何写出可靠的js代码,当然是需要单元测试的,单元测试对js代码的意义:

  1. 检测出潜在的bug
  2. 快速反馈功能输出,验证代码是否达到预期
  3. 保证代码的重构安全
  4. 方便协作开发

被测试对象:程序中的最小测试单元函数或模块
测试代码:用来测试最小单元的代码

首先学习下不使用框架如何测试代码

测试对象

// 被测试对象
let add = (a,b)=>a+b
 

测试代码

// 测试代码
let expect = (res)=>{
    return {
        toBe:(actual)=>{
            if(res !== actual){
                throw new Error('期望值与预期值不符')
            }
        }
    }
}

let test = (desc,fn)=>{try{fn()}catch(e){console.log(`${desc}没有通过`)}

调用测试方法

test("加法测试",()=>{expect(add(1,2)).toBe(4)})

结果:
在这里插入图片描述

以上就是但换测试的基本原理,实际应用中我们需要测试框架完成我们的测试,测试框架有很多选型,相对而言配置最少拿来即用的框架就是jest

jest单元测试

jest 是facebook推出的一款测试框架,集成了 Mocha,chai,jsdom,sinon等功能。

安装

新建工程jest,npm init

cnpm install -D jest

安装完成后通过 npm ls jest验证是否安装成功

在这里插入图片描述
如上图出现版本号则证明安装成功

新建js文件main.js

let add = (a,b)=>  a+b;
moduel.exports = {add};

新建main.test.js文件

test('加法测试',()=>{
    expect(add(1,2)).toBe(4);
})

修改packge.json文件

{
  "name": "jest",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "jest"
  },
  "author": "gcvc",
  "license": "ISC",
  "devDependencies": {
    "jest": "^24.9.0"
  }
}

执行测试代码 npm run test

结果:

在这里插入图片描述

测试结果现实没有通过,我们再次将测试代码修改:

test('加法测试',()=>{
    expect(add(1,2)).toBe(3);
})

执行 npm run test

结果:

在这里插入图片描述

发布了69 篇原创文章 · 获赞 6 · 访问量 1879

猜你喜欢

转载自blog.csdn.net/weixin_40073115/article/details/103839638