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

使用相等运算符(==)测试 actual 参数与 expected 参数是否相等(通俗解释equal方法接受三个参数,第一个参数是实际值,第二个是预期值,第三个是错误的提示信息。)。

 1 // 格式
 2 assert.equal(actual, expected, [message])
 3
 4 assert.equal(true, value, message);
 5 // 等同于
 6 assert(value, message);
 7
 8 // 例子
 9 var assert = require('assert');
10
11 function add (a, b) {
12   return a + b;
13 }
14
15 var expected = add(1,2);
16
17 // 以下三句效果相同
18 assert(expected == 3, '预期1+2等于3');
19 assert.ok(expected == 3, '预期1+2等于3');
20 assert.equal(expected, 3, '预期1+2等于3');

 1 const assert = require('assert');
 2
 3 assert.equal(1, 1);
 4 // 测试通过,1 == 1。
 5 assert.equal(1, '1');
 6 // 测试通过,1 == '1'。
 7
 8 assert.equal(1, 2);
 9 // 抛出 AssertionError: 1 == 2
10 assert.equal({ a: { b: 1 } }, { a: { b: 1 } });
11 // 抛出 AssertionError: { a: { b: 1 } } == { a: { b: 1 } }

如果两个值不相等,则抛出一个带有 message 属性的 AssertionError,其中 message 属性的值等于传入的 message 参数的值。 如果 message 参数为 undefined,则赋予默认的错误信息,equal方法内部使用的是相等运算符(==),而不是严格运算符(===),进行比较运算。

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 包含的子项也会被测试。

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

View Code

如果两个值不相等,则抛出一个带有 message 属性的 AssertionError,其中 message 属性的值等于传入的 message 参数的值。 如果 message 参数为 undefined,则赋予默认的错误信息。

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

测试 actual 参数与 expected 参数是否不深度相等。 与 assert.deepEqual() 相反。

const assert = require('assert'); const obj1 = { a: { b: 1 } }; const obj2 = { a: { b: 2 } }; const obj3 = { a: { b: 1 } }; const obj4 = Object.create(obj1); assert.notDeepEqual(obj1, obj1); // 抛出 AssertionError: { a: { b: 1 } } notDeepEqual { a: { b: 1 } } assert.notDeepEqual(obj1, obj2); // 测试通过,obj1 与 obj2 不深度相等。 assert.notDeepEqual(obj1, obj3); // 抛出 AssertionError: { a: { b: 1 } } notDeepEqual { a: { b: 1 } } assert.notDeepEqual(obj1, obj4); // 测试通过,obj1 与 obj4 不深度相等。
 

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

使用不等运算符(!=)测试 actual 参数与 expected 参数是否不相等(通俗解释notEqual方法的用法与equal方法类似,但只有在实际值等于预期值时,才会抛出错误)

 1 const assert = require('assert');
 2
 3 assert.notEqual(1, 2);
 4 // 测试通过。
 5
 6 assert.notEqual(1, 1);
 7 // 抛出 AssertionError: 1 != 1
 8
 9 assert.notEqual(1, '1');
10 // 抛出 AssertionError: 1 != '1'

// 格式
assert.notEqual(actual, expected, [message])// 用法
var assert = require('assert');function add (a, b) {return a + b;
}var expected = add(1,2);// 以下三种写法效果相同
assert(expected != 4, '预期不等于4');
assert.ok(expected != 4, '预期不等于4');
assert.notEqual(expected, 4, '预期不等于4');

注意:notEqual方法内部使用不相等运算符(!=),而不是严格不相等运算符(!==),进行比较运算。

转载于:https://www.cnblogs.com/yu-hailong/p/7623767.html

assert.equal()相关推荐

  1. [小北De编程手记] : Lesson 05 玩转 xUnit.Net 之 从Assert谈UT框架实践

    这一篇,本文会介绍一下基本的断言概念,但重点会放在企业级单元测试的相关功能上面.下面来跟大家分享一下xUnit.Net的断言,主要涉及到以下内容: 关于断言的概念 xUnit.Net常用的断言 关于单 ...

  2. 单元测试中Assert详解-xUnit

    前一篇:详谈单元测试-xUnit 简介 Assert 是基于代码的返回值.对象的最终状态.事件是否发生等情况来评估测试的结果.Assert 的结果可能是 Pass 或者 Fail.如果所有的 Asse ...

  3. 【ReactiveX】基于Golang pmlpml/RxGo程序包的二次开发

    基于Golang pmlpml/RxGo程序包的二次开发[阅读时间:约20分钟] 一.ReactiveX & RxGo介绍 1.ReactiveX 2.RxGo 二.系统环境&项目介绍 ...

  4. AutoFac使用方法总结:Part I

    utoFac是.net平台下的IOC容器产品,它可以管理类之间的复杂的依赖关系.在使用方面主要是register和resolve两类操作. 这篇文章用单元测试的形式列举了AutoFac的常用使用方法: ...

  5. AutoFac Ioc依赖注入容器

    本文原著:牛毅  原文路径 http://niuyi.github.io/blog/2012/04/06/autofac-by-unit-test/ 理解IOC容器请看下图: 没有使用IOC容器的情况 ...

  6. 工具库 --- Validator (JS正则)

    工具库 --- Validator 今天写的是一个正则验证类 单例模式 工具库地址:github.com/WeForStudy/- npm地址:www.npmjs.com/package/slm- 单 ...

  7. gin路由打开html页面,Gin(二):使用路由

    更多文章 狂点 经过上一章节的介绍,搭建一个简单的 Gin web 项目非常容易,同时也引入了一些新的概念,比如说:路由 Router. 路由是一个非常重要的概念,所有的接口都要有路由来进行管理. 请 ...

  8. python 执行报错AttributeError: 'list' object has no attribute 'g'

    ^ SyntaxError: invalid syntax E:\数学-机器学习-西瓜书-周志华\UDACITY购课\project1 矩阵操作>python test.py Traceback ...

  9. Node.js API参考文档(目录)

    Node.js v11.5.0 API参考文档 Node.js®是基于Chrome的V8 JavaScript引擎构建的JavaScript运行时. 关于文档 用法和示例 断言测试 稳定性:2 - 稳 ...

  10. node13---node使用mongodb

    01.js /***最先的后台语言是Asp(微软的),*/ var express = require("express"); //数据库引用 var MongoClient = ...

最新文章

  1. 后门构建工具Backdoor Factory
  2. 用matplotlib的imshow显示图像,设置colorbar的颜色范围
  3. JS中进行字符串的相等比较时用==遇到的坑
  4. 解决Windows 2003中不允许的父路径Active Server Pages错误'ASP 0131'的方法
  5. 实施微服务架构的关键技术
  6. 联想小新触摸板驱动_联想lenovo笔记本触摸板驱动-联想触摸驱动 win7版下载16.2.5.0 官方版-西西软件下载...
  7. 《计算机组成与CPU设计实验》实验6 彩灯控制器实验
  8. 来杭州云栖大会,全面了解企业如何实现云上IT治理
  9. n维向量积(3维向量积的推广,向量算法)
  10. HTML设置圆角头像,圆角头像的制作
  11. 存储器国产化为何选3D NAND作为突破口?
  12. 我学历不高,怎样找前端的工作?
  13. canvas显示图片分辨率降低优化
  14. Mobile按键对照表
  15. 榕树说技术支持(Rong Zhiyun technical support)
  16. 对那些家庭经济特别艰难的学生
  17. C#利用HttpWebRequest、HttpWebResponse调用12306接口,实现登录、查票、买票。
  18. 火星人现住何处?在干什么?
  19. MySQL约束那些事(超级详细,附带代码解析)
  20. 51CTO学院 c++视频

热门文章

  1. 无法启动计算机的病毒是,电脑病毒导致系统中的exe文件无法打开如何解决
  2. 山东农业大学计算机复试,山东农业大学复试录取分数线
  3. 基于Win64的Masm64函数设计
  4. java6发布_Minecraft Java版 1.13-pre6 发布
  5. html的nofollow标签,nofollow标签两种使用方法及案例
  6. base64 文件格式判断 图片类型判断 js
  7. Google 开发者账号(验证ID)
  8. 疑难杂症:系统雪崩到底是为什么
  9. 51ditu地图频道接口(MapOne API)详细的参数说明表
  10. 什么是SCSI硬盘?