npm 包 justo.assert 使用教程

AI 编程助手,豆包旗下的编程助手,提供智能补全、智能预测、智能问答等能力,节省开发时间,释放脑海中的创造力,支持 VSCode,点击体验 AI

在前端开发中,我们经常需要对代码进行测试来确保其正确性。其中,断言(assert)是一种常用的测试方式。npm 上有很多开源的断言库,本文将介绍其中一款 —— justo.assert

简介

justo.assert 是一款轻量级的,灵活的 Node.js 断言库。它可以被用作 Node.js 或浏览器端的断言库。

同时,它也支持插件机制,你可以通过插件来增强函数库的能力。

安装使用

使用 npm 安装:

--- ------- ------------ ----------

安装后,你可以在项目中引入并使用它:

----- ------ - ------------------------

---------- --- -- -- - - ---- ----

你也可以为你的测试编写一个运行器,来简化测试过程:

----- ------ - ------------------------

-------- -------------- --- -
  ------------------
  -----
-

-------- -------- --- -
  --- -
    -----
    -------------  - ----------
  - ----- --- -
    -------------  - -------- ---------------
  -
-

---------------- -- -- -
  ----- - - ---- --- -- -- -
    ---------- --- -- -- - - ---- ----
  ---

  ----- - - ---- --- -- -- -
    ---------- --- -- -- - - ---- ----
  ---
---

运行你的测试:

- ---- -------

----
  - - - - ---- -
  - - - - ---- -

断言 API

justo.assert 提供了以下断言 API:

assert(value, [msg])

  • value (Any): 待测试的值。
  • msg (String): 断言失败时提示的信息。

value 为假,则抛出错误,提示信息为 msg(默认为 "Assertion failed.")。

-------- - - --- ---

assert.not(value, [msg])

  • value (Any): 待测试的值。
  • msg (String): 断言失败时提示的信息。

value 为真,则抛出错误,提示信息为 msg(默认为 "Assertion failed.")。

------------ - - --- ---

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

  • actual (Any): 实际的值。
  • expected (Any): 期望的值。
  • msg (String): 断言失败时提示的信息。

actual 不等于 expected,则抛出错误,提示信息为 msg(默认为 actual + " !== " + expected.)。

-------------- - -- ---

assert.notEqual(actual, expected, [msg])

  • actual (Any): 实际的值。
  • expected (Any): 期望的值。
  • msg (String): 断言失败时提示的信息。

actual 等于 expected,则抛出错误,提示信息为 msg(默认为 actual + " === " + expected.)。

----------------- - -- ---

assert.strictEqual(actual, expected, [msg])

  • actual (Any): 实际的值。
  • expected (Any): 期望的值。
  • msg (String): 断言失败时提示的信息。

actual 不恒等于 expected,则抛出错误,提示信息为 msg(默认为 actual + " !== " + expected.)。

-------------------- - -- ---

assert.notStrictEqual(actual, expected, [msg])

  • actual (Any): 实际的值。
  • expected (Any): 期望的值。
  • msg (String): 断言失败时提示的信息。

actual 恒等于 expected,则抛出错误,提示信息为 msg(默认为 actual + " === " + expected.)。

----------------------- - -- ---

assert.same(actual, expected, [msg])

  • actual (Any): 实际的值。
  • expected (Any): 期望的值。
  • msg (String): 断言失败时提示的信息。

actual 不和 expected 指向相同的对象,则抛出错误,提示信息为 msg(默认为 actual + " !== " + expected.)。

--- --- - ---
--- ------- - ----
---------------- ---------

assert.notSame(actual, expected, [msg])

  • actual (Any): 实际的值。
  • expected (Any): 期望的值。
  • msg (String): 断言失败时提示的信息。

actualexpected 指向相同的对象,则抛出错误,提示信息为 msg(默认为 actual + " === " + expected.)。

--- --- - ---
--- ---------- - ---
------------------- ------------

assert.instance(value, constructor, [msg])

  • value (Any): 待测试的值。
  • constructor (Function): 期望的构造函数。
  • msg (String): 断言失败时提示的信息。

value 不是 constructor 的实例,则抛出错误,提示信息为 msg(默认为 value + " is not an instance of " + constructor.name + ".")。

------------------- ------- ------

assert.notInstance(value, constructor, [msg])

  • value (Any): 待测试的值。
  • constructor (Function): 期望的构造函数。
  • msg (String): 断言失败时提示的信息。

valueconstructor 的实例,则抛出错误,提示信息为 msg(默认为 value + " is an instance of " + constructor.name + ".")。

---------------------- ------

assert.nil(value, [msg])

  • value (Any): 待测试的值。
  • msg (String): 断言失败时提示的信息。

value 不为 null 或 undefined,则抛出错误,提示信息为 msg(默认为 value + " is not nil.")。

----------------------

assert.notNull(value, [msg])

  • value (Any): 待测试的值。
  • msg (String): 断言失败时提示的信息。

value 为 null 或 undefined,则抛出错误,提示信息为 msg(默认为 value + " is nil.")。

------------------

assert.ok(value, [msg])

  • value (Any): 待测试的值。
  • msg (String): 断言失败时提示的信息。

value 不为真,则抛出错误,提示信息为 msg(默认为 "Assertion failed.")。

----------- - - --- ---

assert.fail([msg])

  • msg (String): 断言失败时提示的信息。

始终抛出错误,提示信息为 msg(默认为 "Assertion failed.")。

-------------- - - --- ----

拓展

同时,justo.assert 支持拓展,下面将讲解如何拓展该库。

justo.assert 的拓展是通过插件来实现的。一个插件需要导出一个函数,在该函数中将断言 API 作为入参传入,然后对 API 做出任意的调整。例如,你可以为断言库增加自定义的断言 API。

以下是一个示例插件,它添加了一个 assert.greaterThan 方法。

定义 plugin.js:

-------------- - ---------------- -
  ------------------ - ---------------- --------- ---- -
    ----------------- -- ---------------- -- ------ - --------- -
      -------
    -

    ----- --- --------- -- ------ - - -- --- ------- ---- - - -------- - -----
  --
--

使用插件:

----- ------ - ------------------------
----- ------ - --------------------

---------------

--------------------- ---

注意,该插件只是示例,实际情况中需要自行根据自己项目需要编写插件。

总结

本文介绍了 justo.assert 的使用和拓展。该断言库提供了丰富的 API,并且支持插件,可以为开发者带来更好的使用体验。希望通过本文的介绍,对读者们有所帮助。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/5f19331b403f2923b035c44e


猜你喜欢

  • npm 包 dogmalangmin 使用教程

    简介 dogmalangmin 是一个可以自动检测和修复 JavaScript 代码中的语言错误和风格问题的 NPM 包。它基于 esprima 和 escodegen 的 AST(抽象语法树)转换技...

    4 年前
  • npm 包 eslint-config-kinvey-platform 使用教程

    在前端开发中,编写高质量的代码是必不可少的。为了达到这个目标,我们需要使用一些工具来辅助我们规范代码风格和发现潜在的问题。其中,一款非常实用的工具就是 eslint。

    4 年前
  • npm包markdown-eslint-parser使用教程

    在前端开发中,Markdown是一种常用的文本格式,很多开发者在编写文档或者写博客都会使用Markdown来进行排版。但是,在编写Markdown时,可能会出现语法错误或者格式不规范的情况。

    4 年前
  • npm 包 eslint-plugin-md 使用教程

    如果你是前端开发工程师,一定在开发过程中遇到过代码格式不规范的问题。这不仅会影响代码可读性,还会降低代码质量,增加 bug 出现的概率。为了解决这个问题,本文介绍了一个非常实用的工具——eslint-...

    4 年前
  • npm 包 eslint-plugin-tyrecheck 使用教程

    介绍 在前端开发过程中,代码规范是非常重要的一环。为了确保代码的质量和可维护性,我们通常会使用 eslint 等工具来进行代码检查和格式化。eslint-plugin-tyrecheck 是一个基于 ...

    4 年前
  • npm 包 eslint-plugin-sort-keys-fix 使用教程

    npm 包 eslint-plugin-sort-keys-fix 使用教程 eslint-plugin-sort-keys-fix 是一个 ESLint 插件,旨在帮助开发者统一 JavaScrip...

    4 年前
  • npm 包 npm-tool-version-check 使用教程

    npm-tool-version-check 是一个用于检查 npm 工具版本的 npm 包,可以检索本地的 npm 工具,检查其版本是否符合指定要求。 为什么我们需要 npm-tool-versio...

    4 年前
  • npm包npm-package-json-lint-config-lddubeau使用教程

    简介 npm-package-json-lint-config-lddubeau是npm-package-json-lint的配置文件,专门为前端开发者提供的一个npm包。

    4 年前
  • npm 包 expect-rejection 使用教程

    在开发前端应用时,我们经常会遇到需要测试异步函数的情况。为了有效地测试异步函数,我们需要考虑并处理可能发生的异常情况。这时,npm 包 expect-rejection 就能帮上忙了。

    4 年前
  • npm 包 uarray 使用教程

    简介 uarray 是一个基于 Array 的扩展库,它支持了更多的高级操作,如函数式编程、惰性求值、异步编程等。使用 uarray 可以大幅提高工作效率,并简化对数组的操作。

    4 年前
  • npm 包 @webreflection/interface 使用教程

    在前端开发中,使用接口能够增强代码的可复用性和可维护性。 @webreflection/interface 是一个可以使用的 npm 包,它提供了一种简单的方式来定义接口并验证实现。

    4 年前
  • npm 包 @ungap/create-content 使用教程

    简介 @ungap/create-content 是一个前端开发所使用的 npm 包,用于创建 HTML 元素并添加内容,能够轻松地进行 DOM 操作。 本教程主要介绍如何使用该包实现前端页面开发中的...

    4 年前
  • npm 包 @ungap/custom-event 使用教程

    这篇文章将介绍如何使用 npm 包 @ungap/custom-event 创建和分发自定义事件。@ungap/custom-event 是一个跨浏览器的 Polyfill(即在不支持现代 JavaS...

    4 年前
  • npm 包 html-escaper 使用教程

    简介 html-escaper 是一个 Node.js 的 npm 包,可以用来将 HTML 特殊字符进行转义,避免 XSS 攻击。XSS 攻击,即跨站脚本攻击,指黑客通过注入脚本,从而在浏览器中执行...

    4 年前
  • npm 包 @ungap/essential-map 使用教程

    前言 随着现代 web 应用程序的日益增多以及前端技术的不断发展,前端工程师们需要使用各种新的工具和库。其中,npm 包是前端开发中最为常见的一种工具。 在这篇文章中,我们将介绍一种叫做 @ungap...

    4 年前
  • npm 包 @ungap/essential-weakset 使用教程

    @ungap/essential-weakset 是一个非常有用的 npm 包,它提供了一种弱引用集合,可以用来存储对象的弱引用。在前端开发中,使用弱引用集合可以有效地避免内存泄漏问题,提高代码的性能...

    4 年前
  • npm 包 @ungap/is-array 使用教程

    在日常的前端开发中,经常需要对数组进行操作,但是 JavaScript 中数组也存在着一些比较棘手的问题。例如,在某些浏览器或环境中,Array.isArray 方法可能不可用或者返回不正确,这时候就...

    4 年前
  • npm 包 @ungap/degap 使用教程

    简介 @ungap/degap 是一个可以自动去除 HTML、XML 和 SVG 中的危险空白节点(例如空格、制表符和换行符等)的 npm 包。自动去除这些危险空白节点可以有效地减少页面的大小并提高加...

    4 年前
  • npm 包 @ungap/template-literal 使用教程

    在前端开发中,模板语言一直是不可或缺的一部分。然而,传统的模板语言可能需要繁琐的配置,甚至需要单独引入模板引擎库,增加了一定的复杂度。而 npm 包 @ungap/template-literal 就...

    4 年前
  • npm 包 @ungap/template-tag-arguments 使用教程

    在现代web开发中,前端工程师需要使用各种工具来构建可靠的web应用程序。npm是其中一个非常流行的JavaScript包管理器,也是前端工程师必须了解的基本工具。

    4 年前

相关推荐

    暂无文章