bn-chai
bn-chai 扩展了 Chai,提供了关于 bn.js 十进制数的断言。
安装
npm install -s bn-chai
设置
var chai = require('chai');
var BN = require('bn.js');
var bnChai = require('bn-chai');
chai.use(bnChai(BN));
用法
比较两个 bn.js 十进制数 bn1 和 bn2 时,无需进行
expect(bn1.eq(bn2)).to.be.true;
您可以改为执行以下操作
expect(bn1).to.eq.BN(bn2);
当将 bn.js 十进制数与内联常量进行比较时,此插件也非常有用,因此无需编写
expect(bn1.eq(new BN('1'))).to.be.true;
您只需编写
expect(bn1).to.eq.BN(1);
这更加简单易读。
断言
eq
断言目标与给定对象相等。
expect(new BN('1')).to.eq.BN(1);
expect(new BN('1')).not.to.eq.BN(0);
lt
断言目标小于给定对象。
expect(new BN('0')).to.be.lt.BN(1);
expect(new BN('1')).not.to.be.lt.BN(1);
lte
断言目标小于或等于给定对象。
expect(new BN('0')).to.be.lte.BN(1);
expect(new BN('1')).to.be.lte.BN(1);
expect(new BN('2')).not.to.be.lte.BN(1);
gt
断言目标大于给定对象。
expect(new BN('1')).to.be.gt.BN(0);
expect(new BN('1')).not.to.be.gt.BN(1);
gte
断言目标大于或等于给定对象。
expect(new BN('1')).to.be.gte.BN(0);
expect(new BN('1')).to.be.gte.BN(1);
expect(new BN('1')).not.to.be.gte.BN(2);
negative
断言目标为负数。
expect(new BN('-1')).to.be.negative;
expect(new BN('1')).not.to.be.negative;
even
断言目标为偶数。
expect(new BN('2')).to.be.even;
expect(new BN('1')).not.to.be.even;
odd
断言目标为奇数。
expect(new BN('1')).to.be.odd;
expect(new BN('2')).not.to.be.odd;
zero
断言目标等于 0。
expect(new BN('0')).to.be.zero;
expect(new BN('1')).not.to.be.zero;
混合 BN、数字和字符串
您可以随意混合 BN、数字和字符串
expect(new BN('1')).to.eq.BN(new BN('1'));
expect(new BN('1')).to.eq.BN('1');
expect(new BN('1')).to.eq.BN(1);
expect('1').to.eq.BN(new BN('1'));
expect('1').to.eq.BN('1');
expect('1').to.eq.BN(1);
expect(1).to.eq.BN(new BN('1'));
expect(1).to.eq.BN('1');
expect(1).to.eq.BN(1);