简介
在前端开发中,测试是一个非常重要的环节。而在测试中,断言库起着至关重要的作用。在 JavaScript 的世界中,我们有很多优秀的断言库,比如:Chai、Jasmine 等。而本文将要介绍的 bn-chai 就是一个基于 Chai 的插件,用于对 BigNumber 类型的数字进行断言。
安装
在使用 bn-chai 之前,我们需要先安装它。
$ npm install --save-dev bn-chai
使用
安装好 bn-chai 后,我们需要在测试代码中引入它,并且使用 chai.use()
方法将其注册到 Chai 当中。
const chai = require('chai'); const BNChai = require('bn-chai'); chai.use(BNChai);
此时,你已经可以使用 bn-chai 对 BigNumber 类型的数字进行断言了。
const { expect } = chai; const a = new BigNumber(10); const b = new BigNumber(20); expect(a).to.gt(b); expect(b).to.lte(a);
API
bn-chai 内置了比较常用的断言方法。下面我们将逐一进行介绍。
1. to.displayedAs(expected)
用于断言 BigNumber 在特定的精度下的表现形式是否与期望值一致。
const a = new BigNumber('1e+10'); const b = new BigNumber('1e+12'); expect(a).to.displayedAs('1e+10'); expect(b).to.displayedAs('1e+12');
2. to.eq(expected)
用于断言 BigNumber 是否等于期望值。
const a = new BigNumber(10); const b = new BigNumber(20); expect(a).to.eq(new BigNumber(10)); expect(b).to.eq(new BigNumber(20));
3. to.gt(expected)
用于断言 BigNumber 是否大于期望值。
const a = new BigNumber(10); const b = new BigNumber(20); expect(b).to.gt(a);
4. to.gte(expected)
用于断言 BigNumber 是否大于等于期望值。
const a = new BigNumber(10); const b = new BigNumber(20); const c = new BigNumber(20); expect(b).to.gte(a); expect(b).to.gte(c);
5. to.lt(expected)
用于断言 BigNumber 是否小于期望值。
const a = new BigNumber(10); const b = new BigNumber(20); expect(a).to.lt(b);
6. to.lte(expected)
用于断言 BigNumber 是否小于等于期望值。
const a = new BigNumber(10); const b = new BigNumber(20); const c = new BigNumber(20); expect(a).to.lte(b); expect(c).to.lte(b);
7. to.negative
用于断言 BigNumber 是否为负数。
const a = new BigNumber(-1); const b = new BigNumber(1); expect(a).to.negative; expect(b).to.not.negative;
8. to.positive
用于断言 BigNumber 是否为正数。
const a = new BigNumber(-1); const b = new BigNumber(1); expect(a).to.not.positive; expect(b).to.positive;
9. to.zero
用于断言 BigNumber 是否为 0。
const a = new BigNumber(0); const b = new BigNumber(1); expect(a).to.zero; expect(b).to.not.zero;
以上是 bn-chai 的所有 API。如果你感兴趣,可以访问官方文档进行更深入的了解。
总结
本文介绍了如何使用 bn-chai 对 BigNumber 类型的数字进行断言。同时,也为我们提供了一种扩展 Chai 的方式,用于满足我们在大数运算中的需求。希望本文能够对大家有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f4f2ddb8250f93ef89002fb