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
原文地址:https://www.cnblogs.com/Leo_wl/p/2848125.html