assert.equal()
assert.equal(actual, expected[, message])
使用相等运算符(==)测试 actual 参数与 expected 参数是否相等(通俗解释equal方法接受三个参数,第一个参数是实际值,第二个是预期值,第三个是错误的提示信息。)。
// 格式
assert.equal(actual, expected, [message]) assert.equal(true, value, message);
// 等同于
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.ok(expected == 3, '预期1+2等于3');
assert.equal(expected, 3, '预期1+2等于3');
const assert = require('assert');
assert.equal(1, 1);
// 测试通过,1 == 1。
assert.equal(1, '1');
// 测试通过,1 == '1'。
assert.equal(1, 2);
// 抛出 AssertionError: 1 == 2
assert.equal({ a: { b: 1 } }, { a: { b: 1 } });
// 抛出 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, '预期两个对象应该有相同的属性');
//预期两个数组应该有相同属性
子对象中可枚举的自身属性也会被测试:
如果两个值不相等,则抛出一个带有 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方法类似,但只有在实际值等于预期值时,才会抛出错误)
const assert = require('assert');
assert.notEqual(1, 2);
// 测试通过。
assert.notEqual(1, 1);
// 抛出 AssertionError: 1 != 1
assert.notEqual(1, '1');
// 抛出 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方法内部使用不相等运算符(!=),而不是严格不相等运算符(!==),进行比较运算。
assert.equal()的更多相关文章
- node assert.equal()
浅测试,使用等于比较运算符(==)来比较 actual 和 expected 参数. const assert = require('assert'); assert.equal(1, 1); // ...
- [小北De编程手记] : Lesson 05 玩转 xUnit.Net 之 从Assert谈UT框架实践
这一篇,本文会介绍一下基本的断言概念,但重点会放在企业级单元测试的相关功能上面.下面来跟大家分享一下xUnit.Net的断言,主要涉及到以下内容: 关于断言的概念 xUnit.Net常用的断言 关于单 ...
- Nodejs v4.x.0API文档学习(2)Assert断言测试模块
文档参考地址:https://nodejs.org/dist/latest-v4.x/docs/api/ Assert(断言) assert模块提供了一组简单的断言测试方法,可以拥有测试不变量.该模块 ...
- Nodejs学习笔记——Assert(断言)
Assert - a:actual e:expected m:message o:operator v:value b:block assert.fail(a, e, m, o) assert(v, ...
- 使用xUnit为.net core程序进行单元测试 -- Assert
第一部分: http://www.cnblogs.com/cgzl/p/8283610.html Assert Assert做什么?Assert基于代码的返回值.对象的最终状态.事件是否发生等情况来评 ...
- node.js官方文档解析 01—assert 断言
assert-------断言 new assert.AssertionError(options) Error 的一个子类,表明断言的失败. options(选项)有下列对象 message < ...
- node API assert
1.assert.throws(block, [error], [message]): assert.throws( function(){ throw new Error('wrong'); }, ...
- 用户数据验证的正确姿势之assert
用户数据验证灰常重要, 不用多说了, 但是实现方法(准确的说是表现形式)有很多人, 如何优雅的完成一个后端验证过滤器是一个值得考量的问题, 我尝试过许多方法, 比如validator.js模块, ex ...
- assert.ok()
测试 value 是否为真值. 相当于 assert.equal(!!value, true, message). 如果 value 不为真值,则抛出一个带有 message 属性的 Assertio ...
随机推荐
- HTML 5 本地存储
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
- 《Java并发编程的艺术》留给自己以后看的笔记
<Java并发编程的艺术>这本书特别好,和<深入了解JAVA虚拟机>有一拼,建议做java的都看看,下面全部都是复制书中的部分内容,主要目的是做个笔记,方便以后遇到问题能找到. ...
- H5 input默认数字键盘,显示为密码格式
<P> <span class="yzname w25">银行密码</span> <input class="j_passwor ...
- 【leetcode刷题笔记】3Sum
Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all un ...
- 浏览器对同一IP的最大并发请求数记录
转载自http://www.iefans.net/liulanqi-zuida-bingfa-lianjieshu/,以方便查阅 版本 HTTP 1.0 服务器(宽带连接) HTTP 1.1 服务器( ...
- java入门了解06
1.进程 : (一)正在执行的程序称作为一个进程. 进程负责了内存空间的划分. (二)问题: windows号称是多任务的操作系统,那么windows是同时运行多个应用程序吗? 从宏观的角度: ...
- Delphi 读取 c# webservice XML的base64编码图片字符串转化图片并显示
Delphi 读取 c# webservice XML的base64编码图片字符串转化图片并显示 在 开发中遇到应用c#及asp.net的在的webservice 保存图片并以xml文件形式现实出来 ...
- Django-01
知识预览 Django基本命令 二 路由配置系统(URLconf) 三 编写视图 四 Template 五 数据库与ORM admin的配置 一 什么是web框架? 框架,即framework,特指为 ...
- g++能过,c++过不了
可能原因: 1.在递归的时候,递归函数中忘记加返回return.(详见Wrong Answer,Memory Limit Exceeded) 代码1:错误 g++--------accepted c+ ...
- cluster KMeans need preprocessing scale????
Out: n_digits: 10, n_samples 1797, n_features 64 ___________________________________________________ ...