Mocha 测试中 chai 的异常断言技术

在前端开发中,测试是不可或缺的环节。Mocha 是一款流行的 JavaScript 测试框架,它可以帮助开发者编写可靠的自动化测试用例。而 Chai 是 Mocha 的一个断言库,可以用来进行各种特定的断言操作,如异常断言。

异常断言是指在测试代码中检查某些代码是否抛出异常。例如,假设你的函数应该抛出一个 Error 对象,在测试代码中,你可以使用 Chai 的 expect(received).to.throw(expected) 语法进行异常断言。

安装和使用 Chai

首先,需要安装 Chai。可以使用 npm 进行安装:

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

使用 Chai 只需要在测试文件顶部引入,并使用 expect() 函数:

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

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

在这个断言中,我们使用了类似于匿名函数的语法。这是因为我们可以将期望的代码作为一个函数传递给 expect 函数,这个函数须要执行,并且期望引起一个错误。

在上述断言中,to.throw(Error) 部分告诉 chai 预计函数调用会抛出一个 Error 对象。如果该函数没有抛出期望的异常,测试将会失败。

异常断言的变体

在使用 Chai 进行异常断言时,还可以使用一些变体来更好地处理不同的异常情况。

检查错误信息

有时候,我们需要确保抛出的错误信息符合预期。在这种情况下,我们可以使用 to.throw 匹配错误消息的正则表达式。例如:

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

在这个例子中,expect() 函数将检查抛出的错误是否包含正则表达式 /my error message/。

检查错误代码

有时候,我们需要检查抛出异常的代码。例如,在 Node.js 中,许多内置模块抛出的错误有一个特定的代码属性。这种情况下,我们可以使用 to.throw 设置特定的错误代码。例如:

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

在这个例子中,我们使用 with.property() 方法来检查代码属性是否等于“EACCES”。

结论

异常断言可以帮助我们更好地处理错误情况,并且保证代码的完整性。Chai 为我们提供了各种强大的异常断言的变体,使得我们可以更好地检查不同类型的错误。当你下次进行自动化测试时,试试使用 Chai 进行异常断言,相信会让你的代码更加可靠。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/66fb49d344713626015aeed8