• 前端测试


    前端测试-学习笔记

    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

  • 相关阅读:
    JQ实现选项卡(jQuery原型插件扩展)
    jQuery的实现原理和核心
    fetch 关于七牛的content-type 的问题
    npm 安装远程包(github的)
    关于dvajs里effects的call和put
    babel6 的 export default bug
    regeneratorRuntime未定义
    babel 解构赋值无法问题
    npm 安装本地包
    datable-默认参数列表
  • 原文地址:https://www.cnblogs.com/sylvia-Camellia/p/12737854.html
Copyright © 2020-2023  润新知