如何在使用 Chai.js 进行单元测试时测试函数抛出的错误?

阅读时长 3 分钟读完

在前端开发中,单元测试是非常重要的一环。而 Chai.js 是一个常用的测试库,它提供了丰富的断言库,可以帮助我们轻松地编写单元测试。但是,有时候我们需要测试函数是否会抛出错误,这时候该如何使用 Chai.js 进行测试呢?本文将会详细地介绍这个问题。

准备工作

在开始之前,我们需要先安装 chaimocha 这两个库:

测试函数是否会抛出错误

在 JavaScript 中,我们可以使用 throw 关键字来抛出一个错误。而在测试函数是否会抛出错误时,我们需要使用 expectto.throw 这两个方法。下面是一个示例代码:

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

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

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

在上面的代码中,我们定义了一个 divide 函数,用于计算两个数的商。当除数为 0 时,函数会抛出一个错误。我们使用 describe 函数来描述这个测试集合,其中包含了两个测试用例。第一个测试用例测试当除数为 0 时,函数是否会抛出一个错误。我们使用 expectto.throw 方法来测试函数是否会抛出错误。第二个测试用例测试当除数为非 0 数字时,函数是否会返回正确的结果。

测试抛出的错误信息

除了测试函数是否会抛出错误外,有时候我们还需要测试抛出的错误信息是否正确。在 Chai.js 中,我们可以使用 to.throw 方法的第二个参数来测试错误信息。下面是一个示例代码:

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

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

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

在上面的代码中,我们在 to.throw 方法中传入了一个字符串 'Divide by zero',用于测试抛出的错误信息是否正确。

结论

在本文中,我们介绍了如何在使用 Chai.js 进行单元测试时测试函数抛出的错误。我们使用了 expectto.throw 这两个方法来测试函数是否会抛出错误,以及抛出的错误信息是否正确。希望本文能够对你有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/675ff13d03c3aa6a56fade6d

纠错
反馈