2016-10-13 9 views
1

私は自分のアプリケーションのテストを書こうとしています。私はKarmaでPhantomJSにファイルをロードしています。問題は、ファイルの1つがウィンドウ変数のためにページのリロードを引き起こすことです。カルマAngularJSブートストラップとウィンドウ変数

ので、同じようファイルが含まれています

files: [ 
    'bower_components/angular/angular.js', 
    'js/**/*.js' 
] 

メインアプリケーションファイル(main.js)は、これを含んでいます

if (window.top !=== window.self){ 
    window.location.href = 'someOtherURL.html'; 
} 

// PhantomJS 2.1.1 ERROR 
// Some of your tests did a full page reload! 

だから、私のテストのどれもが、この一つのファイルを含めるために実行していませんページのリロードによる実行を停止します。

私の質問は、このテストを実行できるようにウィンドウ変数を設定するにはどうすればいいですか?

答えて

0

グローバルなwindowオブジェクトは、テストENVではありませんので、あなたは、テストの前に、以下のハック文字列を置くことがあります。

window = window || {}; 
+0

これはカルマの設定に入りますか? – SoluableNonagon

+1

例:ファイルを別のファイルに入れて、テストファイルに最初に含めます – Nosyara

+0

ああ、ありがとう、それを試してみます – SoluableNonagon

0

そのwindow.topとwindow.selfが同じではないという理由は、カルマ負荷でありますデフォルトでiframe内のテストを行います。

client: { 
    useIframe: false 
}, 

、今では正常に動作します:

は私のカルマの設定にこれを追加しました。

関連する問題