2013-03-16 51 views
1

有没有推荐的方法来深入比较yui3测试中的2个数组(类似于QUnit的deepEqual)?我探讨了源代码,我能想到的最好方法就是从matrix/matrix.js中窃取这个函数(显示略有改写)。它可以很容易地修改为递归任意深度比较,但现在我正在离题...yui深度比较数组

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; 
} 

回答

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'); 
    } 
    }); 
});