• mass Framework spec模块v5


    这是我的测试框架的第8代,前三代是前一个体系,名为abut。spec混杂了Qunit与BDD的一种语法,但更简巧。

    主要改进是用户界面,更方便地定位出错的断言。为了防止某一个断言抛错而影响整个测试,这次还引用window.onerror来吞掉所有错误。

    使用ol列表直接列举要测试逻辑,代替直接显示源码,不对不怎么会编码的测试人员更为友好。引入\u2714与\u2716这两个字符让断言结果更醒目。

    下面就是显示图:

    用法:

    define(["$spec,mass"], function() {
        $.log("已加载test/mass模块", 7)
     
        describe('mass', {
            type: function() {
                expect($.type("string")).eq("String", "取字符串的类型");
                expect($.type(1)).eq("Number", "取数字的类型");
                expect($.type(!1)).eq("Boolean", "取布尔的类型");
                expect($.type(NaN)).eq("NaN", "取NaN的类型");
                expect($.type(/test/i)).eq("RegExp", "取正则的类型");
                expect($.type($.noop)).eq("Function", "取函数的类型");
                expect($.type(null)).eq("Null", "取null的类型");
                expect($.type({})).eq("Object", "取对象的类型");
                expect($.type([])).eq("Array", "取数组的类型");
                expect($.type(new Date)).eq("Date", "取日期的类型");
                expect($.type(window)).eq("Window", "取window的类型");
                expect($.type(document)).eq("Document", "取document的类型");
                expect($.type(document.documentElement)).eq("HTML", "取HTML节点的类型");
                expect($.type(document.body)).eq("BODY", "取BODY节点的类型");
                expect($.type(document.childNodes)).eq("NodeList", "取节点集合的类型");
                expect($.type(document.getElementsByTagName("*"))).eq("NodeList", "取节点集合的类型");
                expect($.type(arguments)).eq("Arguments", "取参数对象的类型");
                expect($.type(1, "Number")).eq(true, "测试$.type的第二个参数");
            }
       });
    })

    源码

    新一年,测试框架会继续强化。单元测试对一个框架的升级与编写是极其重要的。在没有单元测试的情况下进行重构等于自寻死路。

     
     
     
    标签: javascriptmass
  • 相关阅读:
    函数length属性
    vue面试题
    ES6引进新的原始数据类型symbol使用及特性
    jq动画
    防抖和节流
    this指向
    前端:性能优化之回流和重绘
    react生命周期
    vue生命周期
    react-redux的实现原理
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2848125.html
Copyright © 2020-2023  润新知