返回顶部
首页 > 资讯 > 前端开发 > JavaScript >node.js中如何是断言
  • 397
分享到

node.js中如何是断言

2024-04-02 19:04:59 397人浏览 独家记忆
摘要

这期内容当中小编将会给大家带来有关node.js中如何是断言,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。如何使用严格模式const assert =

这期内容当中小编将会给大家带来有关node.js中如何是断言,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

如何使用严格模式

const assert = require('assert').strict; // 严格模式
assert.equal(0, '0') // error

全局使用strict模式后,assert.equal() 与assert.strictEqual()的效果是一样的。

如果不想全局使用的话,可以直接使用带strict的方法。

const assert = require('assert') // 遗留模式

assert.equal(0, '0') // success
assert.strictEqual(0, '0') // error

assert.AssertionError

Error的子类,表示断言失败,assert模块抛出的错误都是AssertionError的实例。

类似于下面这个class,实际上的AssertionError是由ES5写的,下面这个只是方便理解传入的参数

interface IOptions {
 message?: string; // 设置错误的信息
 actual?: any; // 设置错误实例上的实际值
 expected?: any; // 设置错误实例上的期望值
 operator?: string; // 设置用于比较的操作或触发错误的断言函数
 stackStartFn(): any; // 生成的堆栈跟踪将移除所有帧直到提供的函数
}


class AssertionError extends Error {
 constructor(options: IOptions) {
  // ...
 }
}

assert(value: any, message?: string | Error)

检测是否为真值,是assert.ok的别名。

assert.ok(value: any, message?: string | Error)

检测value是否为真值。

如果不为真值,抛出属性message为message参数值的AssertionError,如果未定义,为默认错误信息。

如果是Error的实例,则抛出Error实例。(以下关于message的使用都一样)

assert.strictEqual(actual: any, expected: any, message?: string | Error)

检测 actual参数和expected参数之间的严格相等性,使用sameValue比较。

assert.deepStrictEqual(actual: any, expected: any, message?: string | Error)

检测actual参数和expected参数之间的深度严格相等性,深度比较意味着子对象的可枚举的自身属性也通过以下规则进行递归计算。

assert.notStrictEqual(actual: any, expected: any, message?: string | Error)

检测 actual参数和expected参数之间的严格不相等性,使用sameValue比较。

assert.notDeepStrictEqual(actual: any, expected: any, message?: string | Error)

检测actual参数和expected参数之间的深度严格不相等性,深度比较意味着子对象的可枚举的自身属性也通过以下规则进行递归计算。

assert.fail(message?: string | Error = 'failed')

使用提供的错误消息或默认错误消息抛出 AssertionError。

assert.throws(fn: function, error?: regExp | function | object | Error, message?: string)

检测fn函数抛出的错误是否与预期的错误error一样。

fn为一个会抛出错误的函数

error可以为多种类型,作为与抛出的错误对比的样本。

为regExp时,可以匹配抛出的错误。

assert.throws(() => {
 throw new Error('it is a error')
}, /^Error: it is a error$/);

为function时,可以自定义验证函数

assert.throws(() => {
 throw new Error('it is a error')
}, (err) => {
 if ((err instanceof Error) && /error/.test(err)) {
  return true;
 }
});

为object时,将仅测试验证对象error上的属性。

const err = new TypeError('错误值');
err.code = 404;
err.foo = 'bar';
err.info = {
 nested: true,
 baz: 'text'
};
err.reg = /abc/i; // 正则表达式只有当验证对象包含相同的正则表达式时才通过。

assert.throws(() => {
 throw err;
}, {
 name: 'TypeError',
 message: '错误值'
 info: {
  nested: true,
  baz: 'text'
  // 使用嵌套对象需要存在所有属性。
  // 否则验证将失败。
  // 无法对嵌套属性使用正则表达式!
 }
});

为Error时,用instanceof检测是否是该实例。

注意, error 不能是字符串。 如果提供了一个字符串作为第二个参数,则假定 error 被忽略,而字符串将用于 message。

assert.reject(asyncFn: function | promise, error?: regExp | function | object | Error, message?: string)

assert.throws的异步版本。

asyncFn为一个function时

立即执行该函数,如果该函数不返回promise,则返回一个被拒绝(reject)的 Promise。
如果该函数同步抛出一个错误,返回一个带有该错误的被拒绝的 Promise。

asyncFn为一个Promise时

等待Promise执行,检测是否被拒绝。

assert.ifError(value: any)

如果value不为null或者undefined就将value作为错误抛出。

在回调中测试error参数时,这很有用。

上述就是小编为大家分享的node.js中如何是断言了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网JavaScript频道。

--结束END--

本文标题: node.js中如何是断言

本文链接: https://www.lsjlt.com/news/74497.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • node.js中如何是断言
    这期内容当中小编将会给大家带来有关node.js中如何是断言,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。如何使用严格模式const assert =...
    99+
    2024-04-02
  • Chai 断言库:Node.js 中的测试利器
    Chai 是一个非常流行的断言库,它被广泛用于 Node.js 项目中。Chai 提供了多种断言类型,包括以下几种: expect():最常用的断言类型,用于验证实际值和预期值是否相等。 should():另一种常用的断言类型,语法与 ...
    99+
    2024-02-12
    Node.js, Javascript, 单元测试, 测试框架, 断言库
  • c语言如何判断是否是回文
    判断一个字符串是否是回文的方法可以使用双指针的方式。具体步骤如下:1. 定义两个指针,一个指向字符串的开头,一个指向字符串的末尾。2...
    99+
    2023-08-24
    c语言
  • golang函数中的类型断言是如何实现的?
    类型断言通过以下步骤实现:编译器生成包含类型信息和方法表的 runtime.type 结构体。对一个值进行类型断言时,编译器检查其 runtime.type 结构体是否与目标类型匹配。匹...
    99+
    2024-05-23
    golang 类型断言
  • C语言中如何实现判断
    本篇内容主要讲解“C语言中如何实现判断”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言中如何实现判断”吧!(一)先动手编写一个程序:#include <stdio.h>...
    99+
    2023-06-17
  • C语言中如何判断质数
    目录C语言判断质数C语言判断素数的函数正确代码如下总结C语言判断质数 写判断质数的程序时,需特别注意边界条件: 1.开始边界条件:2作为第一位质数,不参与循环; 2.循环主体:div...
    99+
    2023-03-03
    C语言判断质数 C语言判断 C语言质数
  • node.js中怎么判断执行是否完成
    今天就跟大家聊聊有关node.js中怎么判断执行是否完成,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。方案一:判断请求到的数据条目// 模...
    99+
    2024-04-02
  • Node.js中断路器机制是怎么样的
    这篇文章将为大家详细讲解有关Node.js中断路器机制是怎么样的,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。架构演变带来的问题当我们使用传统的 CS 架构时,服务端由于...
    99+
    2024-04-02
  • Go语言如何判断时间是昨天?
    Go语言是一种开发效率高、性能优异的编程语言,提供了丰富的标准库,能够方便地处理时间和日期。在实际开发中,经常会遇到需要判断一个时间是不是昨天的需求。本文将介绍如何使用Go语言中的时间...
    99+
    2024-04-02
  • javascript如何判断是否是中文
    这篇文章主要介绍了javascript如何判断是否是中文的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript如何判断是否是中文文章都会有所收获,下面我们一起来看看...
    99+
    2024-04-02
  • c语言如何判断一个数是否在数组中
    在C语言中,可以使用循环结构和条件判断语句来判断一个数是否在数组中。具体步骤如下:1. 声明一个数组,并给数组赋值。2. 声明一个变...
    99+
    2023-10-10
    c语言
  • Go语言中如何判断日期是否为前一天?
    题目:Go语言中如何判断日期是否为前一天? 在日常开发中,经常会遇到需要判断日期是否为前一天的情况。在Go语言中,我们可以通过时间计算来实现这个功能。下面将结合具体的代码示例来演示如何...
    99+
    2024-04-02
  • 如何在Go语言中判断日期是否为昨天?
    如何在Go语言中判断日期是否为昨天? 在开发中,经常会涉及到日期的处理和比较,有时候需要判断一个日期是否为昨天。在Go语言中,我们可以通过一些方法来实现这个功能。下面将介绍如何在Go语...
    99+
    2024-04-02
  • Go语言中如何判断特定字符是否存在?
    Go语言中如何判断特定字符是否存在? Go语言是一种快速、简洁、安全的编程语言,广泛用于开发各种类型的应用程序。在Go语言中,我们经常需要判断字符串中是否包含特定字符。本文将介绍如何使...
    99+
    2024-03-13
    go语言 判断存在 查找字符
  • C语言中如何判断utf8编码
    本文小编为大家详细介绍“C语言中如何判断utf8编码”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言中如何判断utf8编码”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。实例代码:int utf8_...
    99+
    2023-06-17
  • node.js是不是高级语言
    本篇内容介绍了“node.js是不是高级语言”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • c语言如何判断数组是否为空
    在C语言中,可以通过判断数组的长度来确定数组是否为空。如果数组的长度为0,则表示数组为空。 下面是一个示例代码: #include ...
    99+
    2023-10-24
    c语言
  • 如何在Go语言中判断时间是否为前一天?
    如何在Go语言中判断时间是否为前一天? 在Go语言中,我们经常需要对日期和时间进行操作和判断。有时候我们需要判断给定的时间是否是前一天,这在一些需求场景中是非常常见的。本文将介绍如何在...
    99+
    2024-04-02
  • node.js学习之断言assert的使用示例
    一. 简介 断言是编程术语,表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在...
    99+
    2022-06-04
    断言 示例 node
  • 如何在java中使用断言assert语法
    如何在java中使用断言assert语法?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整数的数据...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作