在karma测试中使用来自$ templateCache的angularjs指令模板

时间:2014-08-27 17:18:47

标签: angularjs templates karma-runner

我知道如何load templates in my karma tests using the ng-html2js preprocessor。但是,在我们的项目中,我们已经有一个 templates.js 文件,如下所示:

angular.module("myApp").run(
    ["$templateCache", function($templateCache) {
        $templateCache.put(
            "app/directive-template.html",
            "<span>Some fancy template.</span>");
    ...
});

使用gulp-angular-templatecache插件生成。这适用于生产,但无法进行测试。该文件包含在 karma.conf.js 中并正确加载,但运行函数仅在执行测试后执行

如何让业力等待运行阶段,以便在执行测试之前加载模板?

1 个答案:

答案 0 :(得分:1)

如果您在使用myApp模块之前,则会加载您的模板

我使用gulp ng-hmtl2js来创建我的template.js文件 条目如下所示:

    //app template
gulp.task('template_app', function () {
    return gulp.src('./app/**/*.tpl.html')
        .pipe(ngHtml2Js({
            moduleName: "template.app"
        }))
        .pipe(concat('app.template.js'))
        .pipe(gulp.dest('./app'));
});

然后在我的测试中我做了:

beforeEach(module('template.app'));

查看帮助我的答案@ https://stackoverflow.com/a/28832167/1843436