PDF를 생성하는 데 pdfMake를 사용하는 프로젝트가 있습니다. 그것을 사용하려면 내 index.html을자스민 단위 테스트는 전역 변수로 가져온 라이브러리를 정의합니다.
<script src='js/pdfmake.js'></script>
<script src='js/vfs_fonts.js'></script>
에서 파일을 포함하는 내부 그 다음 내 서비스 라이브러리를 사용할 수있는 global["pdfMake"]
를 선언 pdfmake.js.
pdfService :
pdfMake.createPdf(docDefinition).download(fileName);
모든 것이 잘 작동하지만 난 내 서비스에 THS 방법을 테스트하려고 할 때 나는 시험 변수 pdfMake를 찾을 수 없다는 오류가 발생합니다. 그것은 index.html에 의해로드 된 것을 고려하면 의미가 있습니다.
테스트에서이 라이브러리를 모의 파일로 바꾸려면 어떻게해야합니까?
스파이를 사용해 보았지만 makePdf가 작동하지 않는 함수이기 때문에 시도했습니다. spyOn(service, 'makePdf')
.
난 그냥 변수로 설정 시도하지만이 또한 작동하지 않았다 내가 얻을 : 엄격한 모드 저도 같은 문제를 가지고 'pdfMake'
pdfMake = {
createPdf: jasmine.createSpy('createPdf').and.returnValue({
download: jasmine.createSpy('download')
}
}
그래야합니다. http://stackoverflow.com/questions/13794637/undefined0referenceerror-strict-mode-forbids-implicit-creation-of-global-prop에서 살펴 보셨습니까? – tanmay
암시 적 생성 오류를 없애기 위해 다른 사람이 먼저이 문제를 겪고있는 경우 변수를 먼저 선언해야합니다. 따라서 'var pdfMake'를 지정하고 스파이를 만들 때 윈도우 객체에 첨부합니다 – Jackthomson