1

どうやら ie8 には、 への呼び出しから結果の配列に追加される 3 つのプロパティがありますString.prototype.match()

inputindexおよびlastIndex

( MSDN ドキュメント)

.toEqual()その結果、Jasmine のマッチャーを使用すると、配列の比較が失敗します。

私はまだ単体テストの学習曲線を進めているところなので、この失敗に対処する正しい方法は何かに興味があります。

以下は機能しますが、少し不自由なようです。

 numArray = str.match(/\d+(\.\d+)?/g);
 if (numArray && numArray.input) {
      delete numArray.index;
      delete numArray.input;
      delete numArray.lastIndex;
 }
4

2 に答える 2

3

アンダースコアの「違い」メソッドが役立ちます-

expect(_.difference(['item1', 'item2'], ['item1', 'item2'])).toEqual([]);

http://underscorejs.org/#difference

于 2012-10-23T16:29:05.797 に答える
1

@monkeyboyの答えは正しくないと思います。

underscore.difference()2 番目の配列に存在しない最初の配列の要素を返すので、そうでない場合_.difference([1],[1,2]);でも[]テストに合格します。アンダースコアを使用してこれを解決する方法が見つかりませんでした。

だから私は使用しています:

expect(JSON.stringify(result)).toBe(JSON.stringify(expected));

これは期待どおりに機能します。

とにかく、他の人がこれをどのように行っているか知りたいです。

于 2013-03-01T01:18:14.707 に答える