什么是 Chai?
Chai 是一个开源的 JavaScript 测试库,可以用于在任何 JavaScript 环境中编写可读性流畅的断言。它包括两种不同的风格:BDD 和 TDD。
BDD(行为驱动开发)风格的 Chai 是基于自然语言的描述来编写测试用例,使结果更容易理解。BDD 风格的断言通常使用 should、expect 或 assert 等关键字来开展;
而 TDD(测试驱动开发)风格的 Chai 专注于单元测试,并且通过包括 assert、should 和 expect 等函数库,提供了一组更严格的断言和测试方法来测试代码。
如何使用 Chai?
前提条件:在你的 Node.js 项目中使用 Chai 测试库,需要先安装 Chai 库。
使用 npm 安装 Chai:
npm install chai
使用 Chai 进行测试的基本步骤如下:
- 导入 Chai 库
const chai = require('chai');
- 导入所需的断言库
通过 Qunit 等测试库可以轻松使用 Chai。在下面例子中,我假定你使用的是 Mocha 测试库。
const expect = chai.expect;
- 编写测试用例
describe('Array', function() { describe('#indexOf()', function() { it('should return -1 when the value is not present', function() { expect([1,2,3].indexOf(4)).to.be.equal(-1); }); }); });
在这个例子中,我们编写了一个测试用例,测试的是一个数组中某个值的索引。我们期望 value 不在数组中,因此测试用例应该返回 -1。
- 运行测试用例
在命令行中输入以下命令,会执行所有测试:
mocha
除了本地测试,我们还可以使用 Travis CI 在线测试。
如何检验大量数据?
Chai 提供了个 forEach 断言来检验大量数据。
例如在检验一组列表的起始位置:
const expect = chai.expect; it('should start with the right string', function() { const fruits = ['apple', 'pear', 'banana']; fruits.forEach(function(fruit) { expect(fruit).to.be.a('string').and.startsWith('a'); }); });
在这个例子中,我们使用 forEach 来迭代每一个项,并以参数的形式传递 item 进行断言。
总结
- 使用 Chai 可以轻松检验你的 JavaScript 代码,使得你的代码更健壮、更可靠;
- 通过使用 forEach 断言,可以方便地检验大量数据;
- 必须在测试之前安装 Chai 库,并通过导入所需的断言库来实现测试。
示例代码
-- -------------------- ---- ------- ----- ---- - ---------------- ----- ------ - ------------ ----------------- ---------- - ---------------------- ---------- - ---------- ------ -- ---- --- ----- -- --- --------- ---------- - ------------------------------------------- --- --- --- ---------------------- ---------- - ---------- ----- ---- --- ----- -------- ---------- - ----- ------ - --------- ------- ---------- ------------------------------ - ---------------------------------------------------- --- --- ---
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/665200b7d3423812e4658652