我有一個服務爲MyService與使用ga()
事件跟蹤調用一個函數,我想測試:如何嘲笑谷歌Analytics(分析)函數調用GA()
angular.module('myModule').factory('MyService', [function() {
var myFunc = function() {
ga('send', 'event', 'bla');
// do some stuff
}
return {
myFunc: myFunc
}
]);
我的規格文件看起來像這樣:
describe('The MyService', function() {
var MyService,
ga;
beforeEach(function() {
module('myModule');
ga = function() {};
});
beforeEach(inject(function (_MyService_) {
MyService = _MyService_;
}));
it('should do some stuff', function() {
MyService.myFunc();
// testing function
});
});
運行我的測試中總是給我:
ReferenceError: Can't find variable: ga
如果你想測試一個服務,你不應該使用量角器。量角器是爲開發和運行*端到端測試*而設計的,從用戶的角度在瀏覽器中作爲一個整體來測試您的應用程序。 – alecxe
對不起,我當然在談論單元測試 - 改變了我的文字 – DonJuwe
ga是在函數裏面定義的,不是全局的。嘗試與window.ga =功能(){} – fantarama