js实现单元测试

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

1、编写测试代码片段。

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

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

测试代码:

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

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

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

再控制台验证:

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

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

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生成webpack.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. 准备工作做好了,现在可以开始测试了。如在工作区创建测试文件math.js,math.js可以写被测试代码如let add=(a,b)=>a+b;,然后将被测试对象向外暴漏module.exports={add};。
let add = (a, b) => a + b;
module.exports = { add };
  1. 工作区再创建math.test.js用作测试文件,测试文件需要先将被测试对象引进来,使用test方法测试,代码片段如下:。
let { add } = require("./math");
test("加法测试", () => { 
    expect(add(1,2)).toBe(3)
})
  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.
小结

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

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值