web-dev-qa-db-ja.com

Jasmine.jsの配列の比較

Jasmine.jsに、2つの配列が等しいかどうかを確認する方法はありますか、例えば:

arr = [1, 2, 3]
expect(arr).toBe([1, 2, 3])
expect(arr).toEqual([1, 2, 3])

どちらも機能していないようです。

193
user2032804

テストを行ったところ、toEqualで動作します

私のテストを見つけてください:

http://jsfiddle.net/7q9N7/3/

describe('toEqual', function() {
    it('passes if arrays are equal', function() {
        var arr = [1, 2, 3];
        expect(arr).toEqual([1, 2, 3]);
    });
});

ちょうど情報:

toBe()対toEqual():toEqual()は等価性をチェックします。一方、toBe()は、それらがまったく同じオブジェクトであることを確認します。

316
TheEwook

配列にいくつかの値がある場合、下記のような配列を比較できます

it('should check if the array are equal', function() {
        var mockArr = [1, 2, 3];
        expect(mockArr ).toEqual([1, 2, 3]);
 });

ただし、一部の関数から返される配列に複数の要素があり、すべてがゼロの場合は、次を使用して検証します

expect(mockArray[0]).toBe(0);
0
Utkarsh Joshi