2014-05-10 2 views
0

테스트를 실행하는 데 문제가 있습니다. 나는 아약스 요청을하고 각 메소드 (get, post 등)에 대한 약속을 리턴하는 라이브러리를 테스트하려고한다. 내 테스트에SinonJS, QUnit 및 jQuery 테스트 실행

나는이 있습니다

var a = proxy.get("test") 
     .done(function() { 
      ok(true, "API call - GET - Success"); 
     }) 
     .fail(function() { 
      ok(false, "API call - GET - Success"); 
     }); 

$.when(a).always(function() { 
     start(); 
}); 

것은 테스트가 실행되지 않는다는 것입니다. 그리고 이상한 것은 내가이 라인을 제거하는 경우, 작동한다는 것입니다 : 콘솔에 오류가 표시되지

<script type="text/javascript" src="libs/sinon-1.9.1.js"></script> 
<script type="text/javascript" src="libs/sinon-qunit-1.0.0.js"></script> 

, 그래서 어떻게 해야할지 모르겠어요. 아마 sinon이 jQuery로 이상한 일을하고 있을까요? 어떤 팁?

미리 감사드립니다.

답변

0

문제점을 발견했습니다. 것은 내가 가짜 티머를 놓쳤다는 것이다.

그래서,이 같다 :

var clock = sinon.useFakeTimers(); 

var a = proxy.get("test") 
    .done(function() { 
     ok(true, "API call - GET - Success"); 
    }) 
    .fail(function() { 
     ok(false, "API call - GET - Success"); 
    }); 

clock.tick(50); 

$.when(a, b, c, d, e).always(function() { 
    start(); 

    clock.restore(); 
});