在yui3测试中(类似于QUnit的deepEqual),有没有推荐的深度比较2个数组的方法?我查看了一下源代码,我能想到的最好的办法就是从matrix/matrix.js中窃取这个函数(略有重写),它可以很容易地修改为递归的任意深度比较,但我现在离题了……
function compare(list1, list2)
{
var i = 0, len = list1.length, len2 = list2.length, isEqual = len === len2;
if(isEqual) {
for(; i < len; ++i) {
if(list1[i] != list2[i]) {
isEqual = false; break;
}
}
}
return isEqual;
}发布于 2013-03-16 22:06:07
是的,YUI测试有一个Test.ArrayAssert名称空间,其中有许多数组断言。特别是,您有使用==进行测试的itemsAreEqual和使用===的itemsAreEquivalent。您可以通过包含test模块免费获得此功能。
YUI().use('test', function (Y) {
var ArrayAssert = Y.Test.ArrayAssert;
var testCase = new Y.Test.Case({
name: "TestCase Name",
//traditional test names
testSomething : function () {
ArrayAssert.itemsAreEqual([1, 2, 3], foo, 'all items should be 1, 2, 3');
}
});
});https://stackoverflow.com/questions/15449672
复制相似问题