2016-10-31 2 views
0

단위 테스트에서 jQuery 체인 가능 함수가 호출되었는지 확인하는 방법. 예 : 다음 코드를 참조하십시오.단위 테스트에서 jQuery chainable 함수가 호출되었는지 확인하는 방법

function myFunction() { 
    var elem = $('#id').removeClass('someClass').addClass('anotherClass'); 
    return elem; 
} 

removeClass 및 addClass가 호출되고 올바른 값을 갖는지 테스트하는 방법. 스텁에 sinon을 사용하고 있지만 오류가 있습니다.

+0

왜'console.log()'가 아닌가? https://jsfiddle.net/tr_santi/4LugsLdc/ 또는 함수 호출 전후에 요소에 첨부 된 클래스를 보려면 https://jsfiddle.net/tr_santi/4LugsLdc/2/ – Santi

+0

' m 단위 테스트를 작성,이 이유는'console.log'를 사용할 수 없기 때문입니다 – flpms

답변

0

blog post에서 볼 수 있듯이 returns 속성 인 경우 두 개의 스텁을 사용하여이 작업을 수행 할 수 있습니다. 이 경우

function myFunction() { 
    var elem = $('#id').removeClass('someClass').addClass('anotherClass'); 
    return elem; 
} 

에서이 테스트 cenario

it('your test case', function(done) { 
    var jQueryFunctions = { 
     addClass: function(params) { 
      assert.equals(params, 'your assertion'); 
     }, 
     removeClass: function() {} 
    }; 

    sinon.stub(jQueryFunctions, 'addClass').returns(jQueryFunctions); 
    sinon.stub(jQueryFunctions, 'addClass').returns(jQueryFunctions); 

    sinon.stub(window, '$').returns(jQueryFunctions);  
}); 

에서

그것은 매우 간단하고 쉽게합니다.

관련 문제