私は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