有没有QUnit断言/函数来测试元素是否在数组中

问题描述 投票:0回答:3

我的 Qunit 函数中有一个预期输出的数组。现在我想测试我的函数结果是否在这个数组中。

var a =new array('abc','cde','efg','mgh');

现在我的问题是有没有任何 QUnit 断言/函数可以为我做到这一点??

我知道通过一些 JS 编码,我创建了一个方法来检查这一点,但我只想特定于 OUnit!!!!

javascript unit-testing qunit
3个回答
5
投票

如果您有 JavaScript 1.6,您可以使用

Array.indexOf

test("myFunction with expected value", function() {
    var expectedValues = ['abc','cde','efg','mgh'];
    ok(expectedValues.indexOf(myFunction()) !== -1, 'myFunction() should return an expected value');
});

如果您愿意,可以扩展 QUnit 以支持此类断言:

QUnit.extend(QUnit, {
    inArray: function (actual, expectedValues, message) {
        ok(expectedValues.indexOf(actual) !== -1, message);
    }
});

然后您可以在测试中使用此自定义

inArray()
方法:

test("myFunction with expected value", function() {
    var expectedValues = ['abc','cde','efg','mgh'];
    QUnit.inArray(myFunction(), expectedValues, 'myFunction() should return an expected value');
});

我创建了 一个 jsFiddle 来显示这两个选项


0
投票

QUnit 为此提供了一个 deepEqual 函数。 您可以使用它比较数组:

var resultArray = myFunction();
deepEqual(["Expected", "array"], resultArray, "myFunction returned wrong Array");

0
投票

assert.ok(Array.isArray(userData), '响应是一个数组');

© www.soinside.com 2019 - 2024. All rights reserved.