Как сравнить вывод serializeArray, используя qunit - PullRequest
1 голос
/ 19 мая 2010

Я использую Qunit и JQuery. Последняя версия обоих.

В моем коде, когда я отправляю форму, у меня есть событие как e. Я звоню

e.serializeArray() 

Вот мой тест.

equals(args.data, [ { "name": "user_name", "value": "john" } ], 'input data');

А это сообщение об ошибке от qunit.

expected: [ { "name": "user_name", "value": "david" } ] result: [ { "name": "user_name", "value": "david" } ]

Как видите, невооруженным глазом ожидаемое и результирующее значение одинаковы, но qunit не нравится.

Полагаю, я что-то упустил.

1 Ответ

1 голос
/ 02 июня 2010

Возможно, вы захотите взглянуть на deepEqual

module('QUnit');
test('equal and deepEqual', function () {
    expect(4);
    var a1 = [{ "name": "user_name", "value": "david" }];
    var a2 = [{ "name": "user_name", "value": "david" }];
    var b1 = [{ "name": "user_name", "value": "henry" }];
    equal(a1, a2); //should fail
    equal(a1, b1); //should fail
    deepEqual(a1, a2); //should pass
    deepEqual(a1, b1); //should fail
});

Дальнейшее копание дало (из кода qunit.js):

// Backwards compatibility, deprecated
QUnit.equals = QUnit.equal;
QUnit.same = QUnit.deepEqual;

Я предполагаю, что старое слева, новое справа.

...