chai-bn
Chai
断言,用于使用 bn.js 库比较任意精度的整数。从 chai-bignumber 分叉,后者使用 bignumber.js 库。
安装
npm install --save-dev chai-bn
使用
const chai = require('chai');
const BN = require('bn.js');
// Enable and inject BN dependency
chai.use(require('chai-bn')(BN));
断言
以下断言方法可供使用,如果 bignumber
属性被设置为断言链的一部分,则将覆盖现有的内置断言。
- equal/equals/eq
- above/gt/greaterThan
- least/gte
- below/lt/lessThan
- most/lte
- closeTo
还提供了一组额外的断言属性。
- negative
- zero
实际值(断言的值)和期望值(实际值预期匹配的值)都可以是 BN
的实例,或者可以转换为有效数字的字符串。这是与 chai-bignumber 的一个关键区别,它会自动将 JavaScript 数字转换为 BigNumber
实例,用于实际值和期望值。
仅支持 BDD 样式 (expect
或 should
) 断言。
示例
方法
const actual = new BN('100000000000000000').plus(new BN('1'));
const expected = '100000000000000001';
actual.should.be.a.bignumber.that.equals(expected);
expect(actual).to.be.a.bignumber.that.is.at.most(expected);
(new BN('1000')).should.be.a.bignumber.that.is.lessThan('2000');
属性
(new BN('-100')).should.be.a.bignumber.that.is.negative;
expect(new BN('1').sub(new BN('1'))).to.be.a.bignumber.that.is.zero;
某些 Chai
属性(例如 that.is
链)除了提高可读性之外没有其他效果,如果不需要太详细,可以省略。