2016-03-30 7 views
2

私は、角度ツールを使用して、カルマ+ジャスミンを使って角度ツールをテストしています。私はGoogle Analyticsを設定し、次のランブロックコードを持っている:Googleアナリティクスの角度アプリのジャスミンテストでエラーが発生しました

run.$inject = ['$rootScope', '$state', '$location', '$auth', '$window', 'AUTH_EVENTS', 'AuthService', 'Permission']; 

function run($rootScope, $state, $location, $auth, $window, AUTH_EVENTS, AuthService, Permission) { 
    // Initialize Google Analytics for tracking page views w/ ui-router state changes 
    $window.ga('create', 'UA-XXXXXXXX-X', 'auto'); 

grunt testを実行しているとき、私は$window.ga(..ラインから次のエラーを取得しています:私は完全に行を削除する場合

TypeError: 'undefined' is not a function (evaluating '$window.ga('create', 'UA-XXXXXXX-X', 'auto')') 

、エラーがなくなり、ジャスミンテストはそのままで続けます。何か案は?

答えて

5

karma.conf.jsファイルでJasmineが使用するすべてのJavaScriptファイルを提供して、依存関係を読み込みます.Jasmineはanalytics.jsで定義されているga関数を見つけることができないため、未定義になります。このエラーを回避するには、以下のように模擬したいかもしれません。

var $rootScope, $window; 

beforeEach(inject(function(_$rootScope_, _$window_) { 
    $rootScope = _$rootScope_; 
    $window = _$window_; 
    $window.ga = function(){}; 
})); 
+1

これは、テストファイルごとに模擬しなければならないということです。ご回答ありがとうございます。 – blunatic

+0

代わりにカルマの設定ファイルに依存するgoogleanalytics.jsをファイル[...]に含めることができます – karabara

+0

カルマの設定ファイルにgoogleanalytics.jsを含めましたが、上記のコードで試しましたが、まだエラーが発生しています。 "$ window.ga is機能ではない "@akniazi – poojagupta

関連する問題