• javascript单元测试工具QUnit介绍


    QUnit 介绍:

    QUnit是jQuery团队开发的JavaScript单元测试工,使用起来非常方便。有漂亮的外观和完整的测试功能(包括异步测试)。

    由于存在浏览器解析环境、用户操作习惯等差异,前端程序的许多问题是无法捕捉或重现的,现在前端程序的测试多是黑盒测试,靠模仿用户不停的点击来寻 找程序bug。这种方式既费时费力,又无法保证测试的覆盖面。

    随着前端逻辑和交互越来越复杂,和其他编程语言一样,一个函数,一个模块,在修改bug或添加新功能的过程中,很容易就产生新的bug,或使老的 bug复活。这种情况下,反复进行黑盒测试效率很低,如果测试工作交给QA去做,更是怨声载道。此外,浏览器兼容性测试是前端程序测试的重要一环,在多个 浏览器之间测试前端程序,黑盒测试的工作量就会成倍增加。这时候单元测试就体现出了优势,你只需要写一份单元测试代码,到各给浏览器跑一遍,就可以轻松看 到不同的浏览器导致的BUG。有新功能的增加或修改时,只需要跑一下单元测试,问题就一目了然。同时,单元测试本身就是一份良好的说明文档,而且总是能跟 着程序保持同步。

    使用方法:

    QUnit虽然是jQuery团队开发,但是并不依赖jQuery,使用QUnit也很方便,只需要引入一个css和一个js文件即可。

    <link rel="stylesheet" href="http://github.com/jquery/qunit/raw/master/qunit/qunit.css" type="text/css" media="screen" />
    <script type="text/javascript" src="http://github.com/jquery/qunit/raw/master/qunit/qunit.js"></script>

    你当然可以把这两个文件下载到本地直接使用。

    测试方法介绍:

    module(string,lifecycle)声明一个测试模块。第一个个参数为必填,第二参数可选。如:

    module("doAdd方法测试模块");

    test( name, expected, testfuction )开始一个测试。第一个参数为必填,测试名字,字符串。第二个参数为选填,预期的测试个数,数字。第三个参数为测试的方法。如:

    test('doAdd(a,b)方法测试',function() {
        expect(1);
        equals(doAdd(2,5), 7, '2+5等于7');
    });

    ok( state, message ) 布尔断言,第一个参数是true时,表示测试通过,第二个参数选填,附加信息。

    equals( actual, expected, message )等价判断,第一个参数为实际的执行结果,必填。第二个参数为预期结果,必填。当两个结果相等时,测试通过,否则测试不通过。第三个参数为附加信息。但要 注意的是,equals适用于判断字符串、数字等是否相等。对于数组、object、或自定义类别的对比,应该使用same()函数测试。
    same( actual, expected, message ) 与equal用法一样,适合判断数组、object等的等价。
    expect( number ) 测试个数预期,与test函数的第二个参数等价。如果实际测试次数和预期值不符合,则测试不通过。

    asyncTest( name, expected, test ) 异步测试。该测试模块并不立即执行,等到start()函数出现时才开始执行,适合事件、ajax等异步函数的测试。
    start()开始执行这个测试模块。
    stop()暂停执行这个测试模块,直到start()函数重新开启。如:

    module("异步测试模块");
    asyncTest("事件测试", function() {
        expect(1);
        document.body.onclick = function(event){
            start();
            equals(event,"[object MouseEvent]","event值");
        }
    });
  • 相关阅读:
    【276】◀▶ Python 字符串函数说明
    Spring事务配置的五种方式 巨全!不看后悔,一看必懂!
    Android Developers:两个视图渐变
    《Linux命令行与shell脚本编程大全》 第二十七章 学习笔记
    Android的TextView与Html相结合的用法
    嵌入式C语言优化小技巧
    vxworks获取系统时间编程
    【算法与数据结构】在n个数中取第k大的数(基础篇)
    字符集转换 字符类型转换 utf-8 gb2312 url
    java 从零开始,学习笔记之基础入门<Oracle_基础>(三十三)
  • 原文地址:https://www.cnblogs.com/HeroBeast/p/1917127.html
Copyright © 2020-2023  润新知