是否有任何QUnit断言/函数测试数组中的元素是否存在

Dee*_*123 4 javascript unit-testing qunit

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

var a =new array('abc','cde','efg','mgh');
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,是否有任何QUnit断言/函数可以为我做这个?

我知道通过一些JS编码,我创建了一个方法来检查这个,但我只想对OUnit进行操作!

Odi*_*Odi 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');
});
Run Code Online (Sandbox Code Playgroud)

如果需要,可以扩展QUnit以支持这些断言:

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

然后,您可以inArray()在测试中使用此自定义方法:

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

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