【js中的单元测试】【30秒快速入门】

什么是单元测试
测试是一种验证我们代码是否可以按预期工作的方法,换种说法就是写些代码来验证一段代码的正确性,被测试的对象可以是样式、功能、流程、组件等。单元测试是对软件中最小可测试单元进行检测和验证。单元测试能有效的提升工作效率:
1.能监测出潜在的bug
2. 能快速反馈功能的输出
3. 能保证代码重构的安全性
4. 能方便协同开发
如何能写出最简单的单元测试代码?下面介绍两种简单单元测试。

1、编写测试代码片段。

废话不多说,直接上代码。被测对象单元如:

let  add=(a,b)=>a+b;

   
   
    
    
  • 1

测试代码:

let expect = (result) => {
      
      
    return {
      
      
        toBe: function (actual) {
      
      
            if (actual !== result) {
      
      
                throw new Error("期望值与实际值不等")
            }
        }
    }
};

   
   
    
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

接着可以写一个方法用来测试;

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

   
   
    
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

再控制台验证:

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

   
   
    
    
  • 1
  • 2
  • 3

这样一个简单的单元测试单元测试代码就完成了。

2、使用jest测试。

若不想写单元测试代码,也可以借助第三方测试工具jest,是react里面的一种测试方法,下面介绍jest的使用。
1. jest必须基于node环境下,首先使用命令行安装jest,npm i -D jest或者yarn add -D jest进行安装。通过npm ls jest查看jest是否安装成功,如果有jest版本号就表示成功。
2. 在当前工作区使用命令行npm init -y将对应配置项集成在pekage.json中,如下:。

{
      
      
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "text.js",
  "scripts": {
      
      
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

   
   
    
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  1. 准备工作做好了,现在可以开始测试了。如在工作区创建测试文件math.js,math.js可以写被测试代码如let add=(a,b)=>a+b;,然后将被测试对象向外暴漏module.exports={add};。
let add = (a, b) => a + b;
module.exports = {
      
       add };

   
   
    
    
  • 1
  • 2
  1. 工作区再创建math.test.js用作测试文件,测试文件需要先将被测试对象引进来,使用test方法测试,代码片段如下:。
let {
      
       add } = require("./math");
test("加法测试", () => {
      
       
    expect(add(1,2)).toBe(3)
})

   
   
    
    
  • 1
  • 2
  • 3
  • 4
  1. 最后一步也是最关键的一步,修改webpack.json文件。"scripts": { "test": "echo \"Error: no test specified\" && exit 1" },将test的内容改成jest,使用命令行npm run test就可以测试代码的正确性,这样一个简单的单元测试就完成了。下面是通过测试代码片段:
 PASS  ./math.test.js
  √ 加法测试 (2ms)

Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 1.823s
Ran all test suites.

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
小结

上述讲了两种单元测试的方法。一是自己写代码片段去验证被测试对象,二是使用第三方的jest测试。

什么是单元测试
测试是一种验证我们代码是否可以按预期工作的方法,换种说法就是写些代码来验证一段代码的正确性,被测试的对象可以是样式、功能、流程、组件等。单元测试是对软件中最小可测试单元进行检测和验证。单元测试能有效的提升工作效率:
1.能监测出潜在的bug
2. 能快速反馈功能的输出
3. 能保证代码重构的安全性
4. 能方便协同开发
如何能写出最简单的单元测试代码?下面介绍两种简单单元测试。

1、编写测试代码片段。

废话不多说,直接上代码。被测对象单元如:

let  add=(a,b)=>a+b;

   
   
  
  
  • 1

测试代码:

let expect = (result) => {
    
    
    return {
    
    
        toBe: function (actual) {
    
    
            if (actual !== result) {
    
    
                throw new Error("期望值与实际值不等")
            }
        }
    }
};

   
   
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

接着可以写一个方法用来测试;

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

   
   
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

再控制台验证:

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

   
   
  
  
  • 1
  • 2
  • 3

这样一个简单的单元测试单元测试代码就完成了。

2、使用jest测试。

若不想写单元测试代码,也可以借助第三方测试工具jest,是react里面的一种测试方法,下面介绍jest的使用。
1. jest必须基于node环境下,首先使用命令行安装jest,npm i -D jest或者yarn add -D jest进行安装。通过npm ls jest查看jest是否安装成功,如果有jest版本号就表示成功。
2. 在当前工作区使用命令行npm init -y将对应配置项集成在pekage.json中,如下:。

{
    
    
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "text.js",
  "scripts": {
    
    
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

   
   
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  1. 准备工作做好了,现在可以开始测试了。如在工作区创建测试文件math.js,math.js可以写被测试代码如let add=(a,b)=>a+b;,然后将被测试对象向外暴漏module.exports={add};。
let add = (a, b) => a + b;
module.exports = {
    
     add };

   
   
  
  
  • 1
  • 2
  1. 工作区再创建math.test.js用作测试文件,测试文件需要先将被测试对象引进来,使用test方法测试,代码片段如下:。
let {
    
     add } = require("./math");
test("加法测试", () => {
    
     
    expect(add(1,2)).toBe(3)
})

   
   
  
  
  • 1
  • 2
  • 3
  • 4
  1. 最后一步也是最关键的一步,修改webpack.json文件。"scripts": { "test": "echo \"Error: no test specified\" && exit 1" },将test的内容改成jest,使用命令行npm run test就可以测试代码的正确性,这样一个简单的单元测试就完成了。下面是通过测试代码片段:
 PASS  ./math.test.js
  √ 加法测试 (2ms)

猜你喜欢

转载自blog.csdn.net/m0_65450343/article/details/126275232