2014-11-10 3 views
0

Jasmine을 사용하여 일부 모듈 JavaScript가 예상대로 시작되는지 테스트하려고합니다. 하지만 서클에서 돌고 있습니다.Jasmine을 사용하여 다른 모듈을 호출하는 모듈을 테스트하십시오.

// myObj.all.js 
;(function() { 
    window.myObj = window.myObj || {}; 

    myObj.all = { 
     init: function() { 
      myObj.page.init(); 
     } 
    }; 
}()); 

// myObj.page.js 
;(function() { 
    window.myObj = window.myObj || {}; 

    myObj.page = { 
     init: function() { 
      console.log('hello'); 
     } 
    }; 
}()); 

을 그리고 HTML에서 나는 부를 것이다 : :

는 간단한 예로서, 나는이 두 파일이

myObj.all.init(); 

모든 것을 초기화 할 수 있습니다. myObj.page에 더 많은 모듈이 있으며, myObj.all.init()에 대한 하나의 호출은 모두 초기화합니다.

myObj.all.init()이 호출되면 myObj.page.init()도 호출됩니다. 이런 일이 일어날 것이라고 생각했지만 테스트에 실패했습니다.

spyOn(myObj.page, 'init'); 
myObj.all.init({}); 
expect(myObj.page.init).toHaveBeenCalled(); 

어떻게 테스트해야합니까?

답변

0

나는 재스민을 사용하지는 않았지만 다른 방법에서 호출되는 방법을 확인하는 쉬운 방법은 mock 호출해야하는 메서드입니다.

자스민이 mocking을 지원합니다.

myObj.page.init()myObj.all.init()에서 호출해야하는 다른 모든 방법을 모의 할 수 있습니다. 조롱은 조롱 된 메서드가 실제로 호출되었음을 주장하는 메서드를 제공해야합니다.

관련 문제