我的 Qunit 函数中有一个预期输出数组。现在我想测试我的函数结果是否在这个数组中。
var a =new array('abc','cde','efg','mgh');
现在我的问题是是否有任何 QUnit 断言/函数可以为我做到这一点?
我知道通过一些 JS 编码我创建了一个方法来检查这个,但我只想专门针对 OUnit !!!!
我的 Qunit 函数中有一个预期输出数组。现在我想测试我的函数结果是否在这个数组中。
var a =new array('abc','cde','efg','mgh');
现在我的问题是是否有任何 QUnit 断言/函数可以为我做到这一点?
我知道通过一些 JS 编码我创建了一个方法来检查这个,但我只想专门针对 OUnit !!!!
如果你有 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');
});
QUnit 为此提供了 deepEqual 函数。您可以使用它比较数组:
var resultArray = myFunction();
deepEqual(["Expected", "array"], resultArray, "myFunction returned wrong Array");