使用 Chai-As-Promised 测试异步代码

在前端开发中,异步代码是非常常见的一种代码形式,例如:使用 ajax 获取数据,使用 Promise 处理异步操作等等,这些代码的测试也变得非常重要。使用 Chai-As-Promised 可以帮助我们更加方便的进行异步代码测试,本文将介绍如何使用 Chai-As-Promised 进行异步代码测试,并且提供一些例子以便学习和实践。

Chai-As-Promised 简介

Chai-As-Promised 是 Chai 这个 Javascript 测试库的一个插件,它提供了异步测试的能力,常常用于测试异步代码中 Promise、 async/await 等语法格式。它可以轻松地与大多数流行的测试框架集成,例如:Mocha、Jasmine 等。

安装

它可以通过 npm 安装:

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

或者通过 yarn 安装:

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

使用

在开始使用 Chai-As-Promised 进行测试前,我们需要先引入它:

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

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

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

在这里,我们引入了 chai 和 chai-as-promised,然后把 ChaiAsPromised 插件注册到 Chai 上,最后创建一个 expect 对象用于进行测试。现在,我们可以开始编写测试用例了。

示范

在这里,我们提供一个简单的示例,使用 Chai-As-Promised 测试异步代码。这个示例主要是测试一个异步函数,这个函数接收两个数字,然后返回它们的和:

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

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

测试用例:

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

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

在这里,我们编写了两个测试用例,第一个测试用例主要测试 getSum 函数是否能够正确地计算两个数字的和,第二个测试用例主要测试 getSum 函数当传入非法的数字时,是否会提示错误信息。

在第一个测试用例中,我们使用 eventually 关键字来断言异步函数的返回值最终是否等于 5。在第二个测试用例中,我们使用 rejectedWith,来判断异步函数的返回值是否被拒绝,并且返回值是否是 “not a number”。

结论

使用 Chai-As-Promised 对于异步代码的测试非常有用,它可以方便地进行测试,让我们更加信任自己的代码。在使用它进行测试之前,需要先安装并注册 Chai-As-Promised,然后可以创建 expect 对象进行测试。使用 Chai-As-Promised 进行异步代码测试可以提高代码质量,降低出错和调试的时间。

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