小编use*_*503的帖子

Angular Fixture DebugElement Query By类Not Returning Elements

正如Angular.io Framework Testing文档所建议的那样,我一直在尝试使用Angular Testbed + Karma测试Runner来使用DebugElement查询.我创建了一个jqwidgets树组件,它生成类'.jqx-tree-item-li'的li元素.在DOM测试中使用直接javascript的以下测试通过GREEN:

    it('Elements of class jqx-tree-item-li found using getElementsByClassName ', (done) => {

    this.fixture.whenStable().then(
      () => {
        var elementArray = document.getElementsByClassName('jqx-tree-item-li');
        expect(elementArray.length).toBeGreaterThan(0); //passes without issue :)
        done();
      }
    );
  });
Run Code Online (Sandbox Code Playgroud)

但由于0元素返回,在SAME规范(相同的Testbed设置)FAILS中的此测试:

   it('Elements of class jqx-tree-item-li found using Angular DebugElement ', (done) => {

    this.fixture.whenStable().then(
      () => {
        var elementArray = this.fixture.debugElement.queryAll(By.css('.jqx-tree-item-li'));
        expect(elementArray.length).toBeGreaterThan(0); //fails! why? :(
        done();
      }
    );
  });
Run Code Online (Sandbox Code Playgroud)

使用Angular DebugElement找到的类jqx-tree-item-li的对象资源管理器组件元素预期为0大于0.

这不是我第一次观察到它并且我发现它将获得根组件元素,但我似乎无法获得DebugElement查询以返回组件内的元素.虽然文档明确说明它将查询子树.到目前为止,解决方法只是像上面的javascript查询一样,它按预期运行.

我在这里错过了什么吗?有关如何使DebugElement.query工作的任何建议?如果没有,有没有人发现DebugElement查询的问题?谢谢.

javascript unit-testing karma-jasmine angular

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

angular ×1

javascript ×1

karma-jasmine ×1

unit-testing ×1