1

是否有推荐的方法在 yui3 测试中深度比较 2 个数组(类似于 QUnit 的 deepEqual)?我浏览了源代码,我能想到的最好的方法是从 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;
}
4

1 回答 1

2

是的,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');
    }
  });
});
于 2013-03-16T14:06:07.467 回答