javascript - 使用 requirejs 的 Angular Material 设计单元测试 angularjs 指令会引发 "GET"错误

标签 javascript angularjs requirejs karma-jasmine angular-material

我的应用使用 requirejs 和 angularjs。 我正在使用 text! 来加载我的模板(以免在我的指令中使用 templateURL)。一切正常 - 除非指令之一在其模板中包含图像。

我现在正在尝试为模板中带有图标的新指令设置我的测试,但没有成功。 例如,我有以下指令模板:

<buttonDirective>
  <md-icon md-svg-src="/android.svg" alt="android "></md-icon>
</buttonDirective>

Karma 对我大喊“/android.svg”正在被调用(已知的“GET”错误:意外请求:GET IMAGEFILEPATH)。

我尝试将我的图像文件添加到 karma 配置中,但这并没有解决问题。

除了不使用 md-icon 之外,还有什么解决办法吗? (当我将 md-icon 更改为简单图像时它起作用,所以我猜问题是 md-icon 指令正在使用对 svg 文件的一些异步调用,而 Karma 讨厌这样......)。

最佳答案

我通过使用 $httpBackend 来模拟请求来解决这个问题:

beforeEach(inject(function(_$compile_, _$rootScope_, _$httpBackend_) {
    $compile = _$compile_;
    $rootScope = _$rootScope_;
    $httpBackend = _$httpBackend_;

    $httpBackend
        .whenGET('images/ic_forward_24px.svg')
        .respond('');

    $httpBackend
        .whenGET('images/ic_backward_24px.svg')
        .respond('');

    $rootScope.$digest();

}));

关于javascript - 使用 requirejs 的 Angular Material 设计单元测试 angularjs 指令会引发 "GET"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29800417/

相关文章:

javascript - jquery 数据表添加额外的列

Javascript ForEach 函数在 IE 中不起作用

javascript - Angular ng 注释不适用于 babel

javascript - 不区分大小写的自定义排序函数

build - require.js 项目优化 : can't find the dir value

javascript - 动态创建 javascript 对象(Backbone View)

jquery - Selectivizr IE8 白屏死机

php - 将 Javascript 插入 PHP 表

javascript - 获取 Angular 5/TypeScript 中的类(接口(interface))属性而不分配默认值

javascript - 从结果中取消关闭模态