在前端开发中,异步代码是非常常见的一种代码形式,例如:使用 ajax 获取数据,使用 Promise 处理异步操作等等,这些代码的测试也变得非常重要。使用 Chai-As-Promised 可以帮助我们更加方便的进行异步代码测试,本文将介绍如何使用 Chai-As-Promised 进行异步代码测试,并且提供一些例子以便学习和实践。
Chai-As-Promised 简介
Chai-As-Promised 是 Chai 这个 Javascript 测试库的一个插件,它提供了异步测试的能力,常常用于测试异步代码中 Promise、 async/await 等语法格式。它可以轻松地与大多数流行的测试框架集成,例如:Mocha、Jasmine 等。
安装
它可以通过 npm 安装:
npm install chai-as-promised --save-dev
或者通过 yarn 安装:
yarn add chai-as-promised --dev
使用
在开始使用 Chai-As-Promised 进行测试前,我们需要先引入它:
const chai = require('chai'); const chaiAsPromised = require('chai-as-promised'); chai.use(chaiAsPromised); const expect = chai.expect;
在这里,我们引入了 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