美文网首页
JS简单断言函数

JS简单断言函数

作者: roylai | 来源:发表于2017-03-14 21:44 被阅读0次

JS简单断言函数

示例HTML


<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <div id="result"></div>
</body>
</html>

直接上函数

(function () {
    var queue = [], paused = false, results;
    this.test = function (name, fn) {
        // 封装任务送入队列
        // 任务主要做的事情为每个test加一个ul,方便插入断言语句
        queue.push(function () {
            results = document.getElementById('results');
            results = assert(true, name).appendChild(
                document.createElement('ul')
            );
            fn();
        });

        // 测试剩余任务
        runTest();
    };
    
    // 暂停函数
    this.pause = function () {
        paused = true;
    };

    // 异步完成后继续任务队列
    this.resume = function () {
        paused = false;
        setTimeout(runTest, 1);
    };

    // 调控任务函数
    function runTest() {

        // 异步断言过程:先pause()标记暂停,这时异步操作进行,等异步操作执行完毕后回调函数出发resume()函数,标记非暂停runtest下一个任务。

        // 如果任务处于非暂停状态,且仍有剩余任务
        if (!paused && queue.length) {

            // FIFO出一个任务,并且执行
            queue.shift()();
            
            // 同步测试兼容
            if (!paused) {
                resume();
            }
        }
    }
    this.assert = function assert(value, desc) {
        var li = document.createElement('li');
        li.className = value ? "pass" : "fail";
        li.appendChild(document.createTextNode(desc));
        results.appendChild(li);
        if (!value) {
            li.parentNode.parentNode.className = "fail";
        }
        return li;
    }
})();

window.onload = function () {
    test('async test #1', function () {
        pause();
        setTimeout(function(){
            assert(true,"First test completed");
            resume();
        },1000)
    });
    test('async test #2', function(){
        pause();
        setTimeout(function(){
            assert(true,"second test completed");
            resume();
        },1000)
    });
}

相关文章

  • JS简单断言函数

    JS简单断言函数 示例HTML 直接上函数

  • 单元测试

    一、简单入门 如果只是单纯想测试某个js函数执行的结果是否符合预期结果,可用此方法。 安装测试框架mocha和断言...

  • 『政善治』Postman — 9.Pre-request Scr

    Postman测试沙箱其实是结合JS脚本和内置断言函数,来完成测试中的断言功能,在请求发起前后实现部分测试操作。 ...

  • nodejs api

    asset 断言 assert模块提供了一组简单的断言测试集合,用于测试不变量。 该模块是供 Node.js 内部...

  • 自学Swift之断言 assertion

    断言概念: 官方概念太无聊,并且冗余... 断言(assertion) 是一个全局函数 断言理解: 我理解的断言(...

  • Postman 断言

    Postman断言填写在Tests中,通过JavaScript(JS)来实现的。所以要有一点JS的基础。响应断言结...

  • 关于js方法的单测

    基于封装的js方法库,了解了chai.js断言库以及Mocha测试框架,下面我简单介绍记录一下,以方便自己回顾。 ...

  • 接口测试02-Postman的使用

    Postman 断言 postman 断言借助js 语言编写代码,自动判断预期结果与实际结果是否一致。 断言 代码...

  • 【第6篇】TypeScript函数function的案例代码详解

    1、最简单function函数 Ts代码 Js 代码 Html 代码 2、函数其余的参数 Ts文件 JS 代码 3...

  • Postman Tests脚本的使用

    直接在Tests中写js代码断言结果,Test Result展示运行结果,简单方便。 其他常用脚本 示例脚本res...

网友评论

      本文标题:JS简单断言函数

      本文链接:https://www.haomeiwen.com/subject/ydxknttx.html