Mocha 是一个流行的 JavaScript 测试框架,它可以用于测试前端和后端 JavaScript 应用程序。Mocha 好处是可以自由选择你喜欢的断言库,其中 Chai 是其中一个非常受欢迎的断言库。Chai 具备强大的断言库,灵活性高,易于编写测试用例。本教程将介绍如何在 Mocha 中使用 Chai 断言库。
安装 Chai
使用 Chai 断言库需要先安装它。可以使用 npm 来安装 Chai。
npm install --save-dev chai
安装成功后,即可在测试脚本中使用 Chai。
使用 Chai
在测试脚本中使用 Chai 断言库非常简单。
const chai = require('chai'); const expect = chai.expect; describe('测试', () => { it('1 + 1 应该等于 2', () => { expect(1 + 1).to.equal(2); }); });
在上面的测试脚本中,我们首先引入了 Chai 库,并通过 chai.expect
进行断言比较。
Chai 的主要断言方法
Chai 断言库提供了很多可以支持各种类型的断言方法,例如:equal
, be.ok
, not
, throw
等等。以下是一些常用的断言方法。
expect(value).to.equal(value)
比较两个值是否相等。使用的是 triple equals(===
)运算符。
const arr = [1, 2, 3]; expect(arr.length).to.equal(3);
expect(value).to.be.ok
断言值为真,相当于 expect(value).to.equal(true)
。
const name = 'Tom'; expect(name).to.be.ok;
expect(value).to.not.equal(value)
比较两个值是否不相等。
const arr = [1, 2, 3]; expect(arr.length).to.not.equal(0);
expect(fn).to.throw([error])
断言函数会抛出异常。
expect(() => { throw new Error(); }).to.throw();
expect(fn).to.not.throw([error])
断言函数不会抛出异常。
expect(() => { return true; }).to.not.throw();
expect(value).to.be.a(type)
断言值的类型为某个类型。
expect('str').to.be.a('string');
expect(value).to.include(value)
断言值包含某个值。
const arr = [1, 2, 3]; expect(arr).to.include(1);
expect(value).to.have.lengthOf(length)
断言值的长度为某个值。
const arr = [1, 2, 3]; expect(arr).to.have.lengthOf(3);
有些断言方法的结果可以链式调用。
expect(foo).to.be.a('string').and.have.lengthOf(3);
总结
本教程简单介绍了如何在 Mocha 中使用 Chai 断言库,并列举了常用的断言方法。使用 Chai 断言库可以更方便地编写测试用例。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64f69b9ef6b2d6eab3f2fc3a