分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

nodejs assert 模块

发布时间:2023-09-06 01:15责任编辑:沈小雨关键词:jsnodejs

assert模块是Node的内置模块,主要用于断定。如果表达式不符合预期,就抛出一个错误。该模块提供11个方法,但只有少数几个是常用的。

1.assert()

assert(value[, message])

assert.ok() 的别名,ok是assert方法的另一个名字,与assert方法完全一样。

assert方法接受两个参数,当第一个参数对应的布尔值为true时,不会有任何提示,返回undefined。当第一个参数对应的布尔值为false时,会抛出一个错误,该错误的提示信息就是第二个参数设定的字符串

// 格式assert(value, message)// 例子var assert = require(‘assert‘);function add (a, b) { ?return a + b;}var expected = add(1,2);assert( expected === 3, ‘预期1加2等于3‘);

上面代码不会有任何输出,因为assert方法的第一个参数是true。

assert( expected === 4, ‘预期1加2等于3‘)// AssertionError: 预期1加2等于3

上面代码会抛出一个错误,因为assert方法的第一个参数是false。

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

测试 actual 参数与 expected 参数是否深度相等。 原始值使用相等运算符(==)比较。(通俗解释deepEqual方法用来比较两个对象。只要它们的属性一一对应,且值都相等,就认为两个对象相等,否则抛出一个错误。)

只测试可枚举的自身属性,不测试对象的原型、连接符、或不可枚举的属性(这些情况使用 assert.deepStrictEqual())。 

 1 // 格式 2 assert.deepEqual(actual, expected, [message]) 3 ?4 // 例子 5 var assert = require(‘assert‘); 6 ?7 var list1 = [1, 2, 3, 4, 5]; 8 var list2 = [1, 2, 3, 4, 5]; 9 10 assert.deepEqual(list1, list2, ‘预期两个数组应该有相同的属性‘);11 //预期两个数组应该有相同属性12 var person1 = { "name":"john", "age":"21" };13 var person2 = { "name":"john", "age":"21" };14 15 assert.deepEqual(person1, person2, ‘预期两个对象应该有相同的属性‘);
 ??//预期两个数组应该有相同属性

Map 和 Set 包含的子项也会被测试。

子对象中可枚举的自身属性也会被测试:

 1 onst assert = require(‘assert‘); 2 ?3 const obj1 = { 4 ??a: { 5 ????b: 1 6 ??} 7 }; 8 const obj2 = { 9 ??a: {10 ????b: 211 ??}12 };13 const obj3 = {14 ??a: {15 ????b: 116 ??}17 };18 const obj4 = Object.create(obj1);19 20 assert.deepEqual(obj1, obj1);21 // 测试通过,对象与自身相等。22 23 assert.deepEqual(obj1, obj2);24 // 抛出 AssertionError: { a: { b: 1 } } deepEqual { a: { b: 2 } }25 // 因为 b 属性的值不同。26 27 assert.deepEqual(obj1, obj3);28 // 测试通过,两个对象相等。29 30 assert.deepEqual(obj1, obj4);31 // 抛出 AssertionError: { a: { b: 1 } } deepEqual {}32 // 因为不测试原型。
View Code

nodejs assert 模块

原文地址:http://www.cnblogs.com/yu-hailong/p/7623465.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved