chai-bn

NPM Package Build Status

Chai アサーションは bn.js ライブラリを使用して任意精度の整数と比較することができます。 chai-bignumberbignumber.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 または文字列にすることができます。これは、実際の値と想定される値の両方の JavaScript 数値を BigNumber インスタンスに自動的に変換する chai-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 チェーン)は可読性を高める以外の効果はなく、冗長さをそれほど望まない場合は削除できます。

ライセンス

MIT