码迷,mamicode.com
首页 > Web开发 > 详细

nodejs assert 模块

时间:2017-10-03 12:01:36      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:完全   apt   内置模块   function   表达   equal   node   提示   set   

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: 2
11   }
12 };
13 const obj3 = {
14   a: {
15     b: 1
16   }
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 模块

标签:完全   apt   内置模块   function   表达   equal   node   提示   set   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!