2016-03-30 19 views
2

Bir Grunt yapısında Karma + Jasmine kullanarak Angular uygulamam için bazı birim testleri üzerinde çalışıyorum. Ben kurar aşağıdaki çalışma blok koduna sahip Google Analytics:Angular uygulamasında Google Analytics'ten Jasmine testinde hata oluştu

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'); 

ben $window.ga(.. satırından aşağıdaki hatayı alıyorum grunt test çalıştıran:

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

Tamamen, çizgi kaldırırsanız hata gitti ve Jasmine testleri iyi bir şekilde devam ediyor. Herhangi bir fikir?

cevap

5

Jasmine tarafından karma.conf.js dosyasında kullanılan tüm JavaScript dosyalarını bağımlılıkları yüklemekteyiz. Jasmine, analytics.js'de tanımlanan ga işlevini bulamadığı için undefined olsun. Bu hatayı önlemek için,

+1

Aşağıdaki gibi alay etmek isteyebilirsiniz sanırım, bunun alt tarafı her bir test dosyası için alay etmek zorunda kalacağım. Cevap için teşekkürler. – blunatic

+0

yerine googleanalytics.js dosyalarını karma altındaki yapılandırma dosyasında bir bağımlılık olarak ekleyebilirsiniz [...] – karabara

+0

googleanalytics.js'yi karma'nın yapılandırma dosyasına ekledim ve yukarıdaki kodla denedim ama yine de hata alıyorum "$ window.ga bir işlev değil "@akniazi – poojagupta

İlgili konular