LoginSignup
12
11

More than 5 years have passed since last update.

chai のエラーメッセージの情報を増やす

Last updated at Posted at 2014-04-23

chai でオブジェクトをまるっと比較するのに deep.equal を使っています。もっと細かく assertion 書いた方がいいよというのはわかりますが、便利なので・・・。

expect(obj).to.be.deep.equal({ foo: 1, bar: 2, baz: 3 });

このとき、比較しているオブジェクトがもう少し複雑だと、失敗したときのメッセージが以下のように簡略化されてしまいます。

Failures:

  1) Something doSomething
     Failure/Error: expected { Object (foo, bar, ...) } to be like { Object (foo, bar, ...) }

これじゃあ何が違うのかわからない!

調べてみたところ、chai の仕様でした。inspect してみて、文字数が閾値未満だとそのまま表示し、閾値以上だと簡易表示にしてしまうのです。

chai 1.9.1 より前では、この閾値が固定で 40 だったのですが、1.9.1 から設定できるようになりました

// 閾値を変更
chai.config.truncateThreshold = 100;

// 閾値を無効化
chai.config.truncateThreshold = 0;

異常に気づくための情報は常に多い方がいいと思い、無効化しています。

これで TDD がしやすくなりました。

12
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
11