如何在业力测试中设置 Tealium-Angular 配置

How to set Tealium-Angular configuration in a karma test

这里有一个标注库:https://github.com/Tealium/integration-angularjs/blob/master/tealium_angular.js

我们将其集成到我们的应用程序中。在应用程序初始化期间,我们需要为此库提供一些配置。这是这样做的:

我们的app.js:

angular.module('appname', [ 'TealiumHelper' ])
.config(function (tealiumProvider) {
            tealiumProvider.setConfig({
                account: 'accountxx',
                profile: 'profilexx',
                environment: 'dev'
            });
        })

有一个类似这样的业力测试:

(function () {
    'use strict';

    describe('controllertest', function () {
        beforeEach(module('appname','TealiumHelper'));
        it('bla', function () {
            //test code
        }
    }
}

当我开始测试时,我收到来自 tealium_angular.js 的以下错误:

"account or profile value not set. Please configure Tealium first"

如何在我的业力测试中设置这些配置值?

在测试中,您可以为 TealiumHelper 模块提供您自己的实现,例如

describe('controllertest', function () {

    beforeEach(module('appname'))

    angular.module('TealiumHelper', []).provider('tealium', {
        $get: function () {},
        setConfig: function () {}
    });

    /*** test starts here ***/
})

解决方案是(我的同事 Andrea Fűrész 实际上已修复):

她创建了一个包含以下内容的 js 文件:

function TealiumConfig() {
    'use strict';

    module('TealiumHelper', function (tealiumProvider) {
        tealiumProvider.setConfig({
            account: 'foooooo',
            profile: 'baaaar',
            environment: 'dev'
        })
    });
}

然后在 karma config 中将其添加到 "files" 配置中。然后就成功了。