javascript - Angular.js UNIT 测试指令

标签 javascript angularjs unit-testing

我正在尝试对 Angular Directive(指令)进行单元测试。这是代码:

describe('Test', function () {

  var element,
      scope;

  // load the service's module
  beforeEach(module('app'));


  beforeEach(inject(function ($compile, $rootScope) {
    scope = $rootScope.$new();
    element = angular.element('<div id="wow"></div>');
    $compile(element)(scope);
    element.scope().$apply();
  }));

  it('should', function () {
    console.log(document.getElementById('wow'));
  });

});

我在控制台中得到null

当然这只是一个测试用例。在实际代码中, getElementById 由插件使用,该插件用我的指令包装,这是我正在尝试测试的。

所以我的问题是:为什么getElementById找不到刚刚编译的DOM元素。如果这是正确的行为,我怎样才能避免这个错误。

谢谢

最佳答案

您需要将元素附加到文档中的某处。正在工作plnk .

我添加的唯一一件事:

angular.element(document.body).append(element);

关于javascript - Angular.js UNIT 测试指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23502265/

相关文章:

javascript - AngularJS 过滤器隐藏项目,如果它存在于另一个数组中

javascript - AngularJS 工厂中的 Jasmine 测试失败

php - 如何在 PHPUnit 中 stub 更复杂的方法

javascript - 在 Javascript 中对 NaN 使用断言

javascript - 如何在脚本中引用引号内的图像

javascript - 如何在函数中设置 cookie 长度时间

javascript - 在javascript中反转无符号的任意二进制位

javascript - date.Parse() 的问题

javascript - 在 Javascript 中格式化 32 个字符的随机字符串

c# - 何时使用单元测试与 BDD 测试