如何使用qunit比较serializeArray的输出

时间:2010-05-19 13:50:05

标签: jquery testing qunit

我正在使用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 个答案:

答案 0 :(得分:1)

您可能需要查看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;

我假设左边是旧的,右边是新的。