gpt4 book ai didi

angularjs - 如何模拟 Google Analytics 函数调用 ga()

转载 作者:行者123 更新时间:2023-12-02 19:45:08 24 4
gpt4 key购买 nike

我有一个服务MyService,其函数使用我想要测试的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

最佳答案

问题是 ga 的全局范围。

您在测试中创建的 ga 变量具有本地作用域,并且对您自己的服务不可见。

通过使用全局变量 (ga),您使单元测试变得困难。

当前的选择是创建一个 angular.service 来包装 ga 并在其他地方使用它。这样的服务也可以被 mock 。

另一个选项是覆盖全局ga。但这会有副作用。

window.ga=function() {}

关于angularjs - 如何模拟 Google Analytics 函数调用 ga(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36794209/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com