如何使用 Karma + Jasmine + AngularJS 在测试中运行通用代码?

How can I run common code in tests using Karma + Jasmine + AngularJS?

我正在使用 Karma 针对 AngularJS 应用程序运行我的单元测试。问题是我使用 ui-router 插件,它发出一些 XHR 请求来运行模板这一事实迫使我模拟这些请求。因此,我发现自己对每个测试文件都重复了这一点:

  beforeEach(function($templateCache) {
    $templateCache.put('templates/layout.html', '');
    $templateCache.put('templates/dashboard/index.html', '');
    $templateCache.put('templates/session/login.html', '');
  });

如何为我的所有单元测试运行这段代码?我试过谷歌搜索,但没有运气。另外,我应该以其他方式这样做吗?请分享您的意见。

谢谢大家。

您应该查看 ng-html2js-preprocessor:

https://github.com/karma-runner/karma-ng-html2js-preprocessor

它将您所有的模板批量放入一个模板缓存模块(在后台使用 $templateCache),您可以使用:

describe('SOMETHING', function() {
    beforeEach(module('templates'));