【发布时间】:2014-08-21 16:23:30
【问题描述】:
我正在开发一个还不算大的 Angular 应用程序。我遇到了业力单元测试的问题。长话短说,我使用 angular 和 requirej。如果我将模板嵌入我的指令中,我的测试运行良好。但由于这个应用程序很大,它不会扩展。但是当我移动模板并使用templateUrl 将其加载到我的指令中时,我无法摆脱以下错误之一(取决于我如何修改conf):
(初始错误)“意外请求:GET path/to/mytpl.html”
-
“ReferenceError:找不到变量:角度”。使用不同的配置会发生此错误:
- 当我将
{pattern: 'path/to/mytpl.html', included: false}放入我的 karma.conf 并在我的测试文件中添加 requirejs 的定义path/to/mytpl.html时(这是我希望它工作的方式)。 - 当我将
path/to/mytpl.html放入我的 karma.conf 时,我的所有模板都会返回此错误(无论我是否使用 ng-html2-js 预处理器)。
- 当我将
“错误:[$injector:modulerr] 无法实例化模块模板,原因是: 错误:[$injector:nomod] 模块“模板”不可用!”。我看到 karma-ng-html2js-preprocessor 可以用来创建一个包含所有模板的模块,但它从来没有工作过。
注意:我在 karma.conf 中没有使用 FQN,我在这里使用它是为了保持一致。我认为这并不重要,但我更喜欢准确地说
我看到有人将每个 'path/to/mytpl.html': {deps: ['angular']} 放在他们的 test-main.js 的 shim 部分。但这对我不起作用,而且该解决方案无法扩展。
【问题讨论】:
标签: angularjs unit-testing requirejs karma-runner