第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。

复制代码
稳定性: 5 - 锁定

这个模块可用于应用的单元测试,通过 require('assert') 可以使用这个模块。

assert.fail(actual, expected, message, operator)

使用参数operator测试参数actual (实际值) 和expected(期望值)是否相等。

assert(value[, message]), assert.ok(value[, message])

测试参数value是否为true,此函数和assert.equal(true, !!value, message);等价。

assert.equal(actual, expected[, message])

判断实际值actual和期望值expected是否相等。

assert.notEqual(actual, expected[, message])

判断实际值actual和期望值expected是否不等。

assert.deepEqual(actual, expected[, message])

执行深度比较,判断实际值actual和期望值expected是否相等。

assert.notDeepEqual(actual, expected[, message])

深度比较两个参数是否不相等。

assert.strictEqual(actual, expected[, message])

深度比较两个参数是否相等。

assert.notStrictEqual(actual, expected[, message])

此函数使用操作符 '!==' 严格比较是否两参数不相等。

assert.throws(block[, error][, message])

声明一个block用来抛出错误(error),error可以是构造函数,正则表达式或其他验证器。

使用构造函数验证实例:

复制代码
    assert.throws(
      function() {
        throw new Error("Wrong value");
      },
      Error
    );

使用正则表达式验证错误信息:

复制代码
    assert.throws(
      function() {
        throw new Error("Wrong value");
      },
      /value/
    );

用户自定义的错误验证器:

复制代码
    assert.throws(
      function() {
        throw new Error("Wrong value");
      },
      function(err) {
        if ( (err instanceof Error) && /value/.test(err) ) {
          return true;
        }
      },
      "unexpected error"
    );

assert.doesNotThrow(block[, message])

声明block不抛出错误,详细信息参见assert.throws

assert.ifError(value)

判断参数value是否为false ,如果是true,则抛出异常。通常用来测试回调中第一个参数error。

相关推荐
❀͜͡傀儡师43 分钟前
Aube:下一代 Node.js 包管理器,性能远超 pnpm
node.js·aube
神码编程2 小时前
【Unity】MiniGame编辑器小游戏(十六)中国象棋局域网对战【Chinese Chess】(下)
unity·编辑器·游戏引擎·小游戏
Lee川8 小时前
mini-cursor 揭秘:从 Tool 定义到 Agent 循环的完整实现
前端·人工智能·后端
星浩AI10 小时前
OpenHuman 对比 OpenClaw、Hermes Agent
人工智能·后端·agent
小江的记录本10 小时前
【Java基础】泛型:泛型擦除、通配符、上下界限定(附《思维导图》+《面试高频考点清单》)
java·数据结构·后端·mysql·spring·面试·职场和发展
SeaTunnel10 小时前
AI 让 SeaTunnel 读源码和调试过时了吗?
大数据·数据库·人工智能·apache·seatunnel·数据同步
geovindu13 小时前
go: Semaphore Pattern
开发语言·后端·设计模式·golang·企业级信号量模式
IT_陈寒13 小时前
Redis内存用爆了,原来我们都忽略了这个配置
前端·人工智能·后端
武子康13 小时前
Java-02 深入浅出MyBatis 3 快速入门:环境配置、项目创建与 CRUD 操作
java·后端
未若君雅裁13 小时前
Spring Boot 自动配置原理与常用注解
java·spring boot·后端