一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第2天,点击查看活动详情。 在web中自动化测试大概分为3种形式:单元测试,组件测试,端到端 (E2E,end-to-end) 测试。
1.谈谈单元测试
单元测试允许你将独立单元的代码进行隔离测试,其目的是为开发者提供对代码的信心。通过编写细致且有意义的测试,你能够有信心在构建新特性或重构已有代码的同时,保持应用的功能和稳定。 目前常用的测试框架有mocha+chai的组合,好多框架也是基于它们做的拓展。
2.关于mocha
mocha(俗称摩卡)是一个功能丰富的javascript测试框架,运行在node和浏览器中,使异步测试变得简单。Mocha测试允许灵活和准确的报告,同时将未捕获的异常映射到正确的测试用例。入门还是比较简单。
3.安装
一行简单的代码
npm i mocha -D
4.一个简单的例子
新建test文件夹,随便创建一个test.js
test/test.js
var assert = require('assert'); //这个是node自带的断言模块,此处近作举例,推荐使用更泛用的断言库chai
describe('一个简单的测试(这里可以随便写)', function() {
describe('#来个小例子(这里也可以随便写)', function() {
it('返回了true,说明数组不包含目标值(这里还可以随便写)', function() {
assert.equal([1,2,3,4,5,6].indexOf(10), -1);
});
});
});
然后我们打开控制台执行mocha(没有全局安装需要 npx mocha),它默认会执行test文件夹下的所有js
展示结果如下
$ ./node_modules/mocha/bin/mocha
一个简单的测试(这里可以随便写
##来个小例子(这里也可以随便写)
✓ 返回了true,说明数组不包含目标值(这里还可以随便写
1 passing (9ms)
由于满足条件,测试成功。如此我们便完成了一个小的自动化测试。
5.关于describe和it
describe块称为"测试套件"(test suite),表示一组相关的测试。它是一个函数,第一个参数是测试套件的名称("加法函数的测试"),第二个参数是一个实际执行的函数。
it块称为"测试用例"(test case),表示一个单独的测试,是测试的最小单位。它也是一个函数,第一个参数是测试用例的名称("1 加 1 应该等于 2"),第二个参数是一个实际执行的函数。
6.另一个
我们再写一个简单的例子,他更像我们实际开发中写的测试用例
test/test2.js
import { sum } from ‘@/utils/math.js’
describe('工具类测试', function() {
describe('加法测试', function() {
it('1+2===3', function() {
assert.equal(sum(1,2), 3);
});
it('2+2===4', function() {
assert.equal(sum(2,2), 4);
});
});
});
执行结果如下
1 passing (3ms)
1 failing
工具类测试
加法测试
2+2===5:
AssertionError [ERR_ASSERTION]: 4 == 5
+ expected +5 actual -4
一个通过,一个不通过,返回大意期望+5,实际返回-4
以上就是本小结内容,更多内容持续更新中。。。