こんにちはシノン! プレリリースバージョンに追加されたクールな新機能を備えた素晴らしいライブラリを提供していただきありがとうございます。 私は新しく導入されたAPIにpreを使用していました(私は自分で拡張機能を書くつもりでしたが、ソースを掘り下げている間にコードを見つけました)が、.6リリースは私たちの大きなテストスイートを壊しました。
何が起こると思いましたか?
異なるが「等しい」エラーインスタンスが渡されたときに.deep.equals
アサーションが失敗するとは予想していませんでした
実際に何が起こるか
Error
サブクラスの場合、深いequals
は正確にequals
ます。 https://github.com/sinonjs/sinon/blob/master/lib/sinon/util/core/deep-equal.js#L54 -L56
皆さんこんにちは!
これは確かに解決するのが簡単なことであり、私はそれのためにPRをしたいと思っています。 ただし、そのif
句を修正する以外に、別のアプローチを提案したいと思います。
Chai
には、深い等価性チェックを行うdeep-eql
というモジュールがあります。 広範囲にテストされ、パフォーマンスが微調整されており、Chaiのコアで正常に動作します。
同じライブラリを採用することで、将来的には同じコードベースに取り組み、ライブラリを改善し、それを使用するすべてのプロジェクトでより良いものにする予定です。
また、このライブラリが受け入れるcomparator
引数により、 use
メソッドを使用することもできます。
採用したくない場合も問題ありませんが、この問題を解決する前に提案することを考えました。
@lucasfcosta提案されたソリューションが好きです。 コンパレータオプションになるためにmatch
を絡めるのは少し難しいかもしれません...しかし、あなたは挑戦が好きなようです;)
コードベースのサイズを縮小するPRを見たいです
この問題は、最近のアクティビティがないため、自動的に古いものとしてマークされています。 それ以上のアクティビティが発生しない場合は閉じられます。 貢献していただきありがとうございます。
最も参考になるコメント
皆さんこんにちは!
これは確かに解決するのが簡単なことであり、私はそれのためにPRをしたいと思っています。 ただし、その
if
句を修正する以外に、別のアプローチを提案したいと思います。Chai
には、深い等価性チェックを行うdeep-eql
というモジュールがあります。 広範囲にテストされ、パフォーマンスが微調整されており、Chaiのコアで正常に動作します。同じライブラリを採用することで、将来的には同じコードベースに取り組み、ライブラリを改善し、それを使用するすべてのプロジェクトでより良いものにする予定です。
また、このライブラリが受け入れる
comparator
引数により、use
メソッドを使用することもできます。採用したくない場合も問題ありませんが、この問題を解決する前に提案することを考えました。