2013-03-16 2 views
1

배열을 비교하면 yui3 테스트에서 2 개의 어레이를 깊이 비교할 수있는 좋은 방법이 있습니다 (QUnit의 deepEqual과 유사)? 내가 근원을 찔러서 얻을 수있는 최선의 방법은 matrix/matrix.js에서이 함수를 훔치는 것이었다. (약간 재 작성된 것처럼 보인다.) 재귀적인 임의의 깊이 비교로 쉽게 수정할 수는 있지만 지금은 무시하고있다.deep in 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 네임 스페이스를 가지고있다. 특히 ==itemsAreEquivalent으로 테스트하는 itemsAreEqual===을 사용합니다. 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'); 
    } 
    }); 
});