首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ng-html2js的AngularJS指令测试

使用ng-html2js的AngularJS指令测试
EN

Stack Overflow用户
提问于 2014-09-08 13:54:05
回答 1查看 1K关注 0票数 2

关于ng-html2js插件有很多问题,但不幸的是,所有的答案都没有帮助我解决y问题。

我遵循了官方的安装指南和示例https://github.com/vojtajina/ng-directive-testing/blob/master/test/tabsSpec.js

我的目标是测试一个具有templateUrl属性的指令,这是我的配置

karma.conf.js

代码语言:javascript
复制
files: [
  ... // lots of studd here

  'app/views/**/*.html' // templates are all here
],

[...] // other karma configs here

preprocessors: {
  'app/views/**/*.html': ['ng-html2js']
},

我想测试的指令是非常基本的

代码语言:javascript
复制
'use strict';

angular.module('myAwesomeApp').directive('rzMenu', function () {
    return {
      templateUrl: 'views/directives/rzmenu.html',
      restrict: 'E'
    };   
});

的单元测试文件。

代码语言:javascript
复制
'use strict';

describe('Directive: rzmenu', function () {

  // load the directive's module
  beforeEach(module('myAwesomeApp'));
  beforeEach(module('app/views/directives/rzmenu.html'));

  var element,
    scope;

  beforeEach(inject(function ($rootScope, $compile) {
    element = angular.element('<rzmenu></rzmenu>');
    scope = $rootScope.$new();
    element = $compile(element)(scope);
    scope.$digest();
  }));

  it('should have content', inject(function () {
    //scope.$digest();
    var content = element.text();
    expect(content).toBe('');
  }));
});

看看“应该有内容”的测试,难道不应该和模板一样吗?

为什么我得到和空的字符串?

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-08 15:06:21

不过,我解决了两个错误:

1) cacheIds必须匹配templateUrl属性,因此

代码语言:javascript
复制
stripPrefix: 'app/'

在配置中也需要调用模块,而不需要测试中的app/前缀。

代码语言:javascript
复制
beforeEach(module('views/directives/rzmenu.html'));

2)指令名为camelCase,因此实例调用是错误的,下面是正确的

代码语言:javascript
复制
element = angular.element('<rz-menu></rz-menu>');

:)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25725924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档