npm 包 justo.assert 使用教程

阅读时长 9 分钟读完

在前端开发中,我们经常需要对代码进行测试来确保其正确性。其中,断言(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

纠错
反馈