什么是单元测试?
测试是一种验证我们代码是否可以按预期工作的方法,换种说法就是写些代码来验证一段代码的正确性,被测试的对象可以是样式、功能、流程、组件等。单元测试是对软件中最小可测试单元进行检测和验证。单元测试能有效的提升工作效率:
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
- 准备工作做好了,现在可以开始测试了。如在工作区创建测试文件math.js,math.js可以写被测试代码如
let add=(a,b)=>a+b;
,然后将被测试对象向外暴漏module.exports={add}
;。
let add = (a, b) => a + b;
module.exports = {
add };
- 1
- 2
- 工作区再创建math.test.js用作测试文件,测试文件需要先将被测试对象引进来,使用test方法测试,代码片段如下:。
let {
add } = require("./math");
test("加法测试", () => {
expect(add(1,2)).toBe(3)
})
- 1
- 2
- 3
- 4
- 最后一步也是最关键的一步,修改webpack.json文件。
,将test的内容改成jest,使用命令行"scripts": { "test": "echo \"Error: no test specified\" && exit 1" }
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
- 准备工作做好了,现在可以开始测试了。如在工作区创建测试文件math.js,math.js可以写被测试代码如
let add=(a,b)=>a+b;
,然后将被测试对象向外暴漏module.exports={add}
;。
let add = (a, b) => a + b;
module.exports = {
add };
- 1
- 2
- 工作区再创建math.test.js用作测试文件,测试文件需要先将被测试对象引进来,使用test方法测试,代码片段如下:。
let {
add } = require("./math");
test("加法测试", () => {
expect(add(1,2)).toBe(3)
})
- 1
- 2
- 3
- 4
- 最后一步也是最关键的一步,修改webpack.json文件。
,将test的内容改成jest,使用命令行"scripts": { "test": "echo \"Error: no test specified\" && exit 1" }
npm run test
就可以测试代码的正确性,这样一个简单的单元测试就完成了。下面是通过测试代码片段:
PASS ./math.test.js
√ 加法测试 (2ms)