2014-07-10 4 views
0

다음 코드가 주어지면 처음 부분에 대해 QUnit을 사용하여 테스트를 작성했지만 finder.doRoutefinding을 테스트 할 수 없었습니다. finder.doRoutefinding 함수를 어떻게 조롱 할 수 있습니까?테스트 할 때 문제가 발생했습니다 (자바 스크립트 및 QUnit 사용 중)

`finder.doSelectDestination = function(address) 
    { 
     finder.destination = address; 
     finder.doRoutefinding(
       finder.departure, 
       finder.destination, 
       finder.whenRouteLoaded, 
       finder.showRoute); 
    } 

test('Destination Selector', 
    function() 
    { 
     address="London"; 
     finder.doSelectDestination(address); 

     equal(pathfinder.destination,address, "Succesful Destination Selection"); 

    } 
); 

답변

0

는주의 사항이 있습니다 (더 아약스 호출이 참여 없기 때문에 Mockjax 여기에 사용할 수 없습니다),하지만 당신은 단순히 함께 기능을 대체 할 수있는 당신의 모형 :

var originalDoRoutefinding = finder.doRoutefinding; 
finder.doRoutefinding = function() { 
    // Mock code here. 
}; 
// Test code here. 
finder.doRoutefinding = originalDoRoutefinding; 

그런 종류의 당신을 위해 작동하는 경우 Sinon.JS과 같은 라이브러리를 사용하는 것이 좋습니다.