2014-12-15 3 views
0

mocha/sinonjs를 사용하여 함수를 테스트하려고합니다. 테스트하고 싶은 함수는 내 DOM의 일부 요소를 표시하거나 숨길 책임이 있습니다.Sinon JQuery 선택기 모의

이 제 기능

var updateUI = function() { 
    $('#login').show(); 
    $('#logout').hide(); 
}; 

내가 sinon를 사용하여 조롱하려이지만이 가능하거나 경우에 할 수있는 올바른 일이 있는지 확실하지 않습니다.

이 내가 시도 것입니다하지만 난 부름받은 제 2 개 JQuery와 통화를 테스트 할 expect 전화

var mockLogin = sinon.mock($); 
mockLogin.withArgs('#login').expects("show").once(); 

나는 간단한 희망 중에 오류 "TypeError: undefined is not a function" 점점 계속. 스파이를 사용하려고했지만 예외는 계속 발생했습니다.

답변

2

sinon의 문서를 보면 다음과 같은 사실이 발견되었습니다. 쉬운 방법이 있지만, 내가

을 필요로하는 선택기가 확인하는 경우

var jQueryShow = sinon.stub($.fn, 'show'); 
var jQueryHide = sinon.stub($.fn, 'hide'); 

jQueryShow.callCount.should.be.equal(1); 
jQueryShow.thisValues[0].selector.should.be.equal("#login"); 

jQueryHide.callCount.should.be.equal(1); 
jQueryHide.thisValues[0].selector.should.be.equal("#logout"); 

는 잘 모르겠어요