2013-03-16 50 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'); 
    } 
    }); 
});