chai-bn

NPM Package Build Status

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 样式 (expectshould) 断言。

示例

方法

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 链)除了提高可读性之外没有其他效果,如果不需要太详细,可以省略。

许可证

MIT