Ruby's Louvre

每天学习一点点算法

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

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的第二个参数");
        }
   });
})

源码

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

如果您觉得此文有帮助,可以打赏点钱给我支付宝1669866773@qq.com ,或扫描二维码

posted on   司徒正美  阅读(1564)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
历史上的今天:
2011-01-06 [class]与[class=""]
2010-01-06 高效地获取XMLhttp对象
点击右上角即可分享
微信分享提示