前端测试

前端测试-学习笔记

1、相关术语

(1)测试框架

就是运行测试的工具。通过它,可以为JavaScript应用添加测试,从而保证代码的质量。

有Mocha、Jasmine、Karma等。

(2)测试脚本

就是用来测试源码的脚本。

通常,测试脚本与所要测试的源码脚本同名,但是后缀名为.test.js(表示测试)或者.spec.js(表示规格)。

测试脚本里面应该包括一个或多个describe块,每个describe块应该包括一个或多个it块。

describe块称为"测试套件"(test suite),表示一组相关的测试。它是一个函数,第一个参数是测试套件的名称("加法函数的测试"),第二个参数是一个实际执行的函数。

it块称为"测试用例"(test case),表示一个单独的测试,是测试的最小单位。它也是一个函数,第一个参数是测试用例的名称("1 加 1 应该等于 2"),第二个参数是一个实际执行的函数。

(3)断言

就是判断源码的实际执行结果与预期结果是否一致,如果不一致就抛出一个错误。

所有的测试用例(it块)都应该含有一句或多句的断言。它是编写测试用例的关键。断言功能由断言库来实现,Mocha本身不带断言库,所以必须先引入断言库。

(3-1)断言库

例如断言库chai

(3-2)断言风格

例如expect断言的优点是很接近自然语言。

基本上,expect断言的写法都是一样的。头部是expect方法,尾部是断言方法,比如equala/anokmatch等。两者之间使用toto.be连接。

如果expect断言不成立,就会抛出一个错误。事实上,只要不抛出错误,测试用例就算通过。

(4)运行

例如:

mocha命令后面紧跟测试脚本的路径和文件名,可以指定多个测试脚本。


$ mocha file1 file2 file3

Mocha默认运行test子目录里面的测试脚本。所以,一般都会把测试脚本放在test目录里面,然后执行mocha就不需要参数了。

Mocha默认只执行test子目录下面第一层的测试用例,不会执行更下层的用例。

为了改变这种行为,就必须加上--recursive参数,这时test子目录下面所有的测试用例----不管在哪一层----都会执行。

2、ES6测试

如果测试脚本是用ES6写的,那么运行测试之前,需要先用Babel转码。

3、异步测试

例如 Mocha默认每个测试用例最多执行2000毫秒,如果到时没有得到结果,就报错。对于涉及异步操作的测试用例,这个时间往往是不够的,需要用-t--timeout参数指定超时门槛。

4、测试用例的钩子

例如 Mocha在describe块之中,提供测试用例的四个钩子:before()after()beforeEach()afterEach()。它们会在指定时间执行。

5、浏览器测试

例如 mocha init命令在指定目录生成初始化文件index.html

原文地址:https://www.cnblogs.com/sylvia-Camellia/p/12737854.html