Web组件测试程序:访问DOM

时间:2016-10-26 13:35:31

标签: polymer web-component-tester

我有数百个聚合物测试套件。在每次测试结束时,我都想访问DOM进行一些自定义质量检查。

写一个wct插件会起作用吗?如果是这样,我应该如何从插件中访问DOM?

提前致谢!

1 个答案:

答案 0 :(得分:2)

无需插件。您可以使用本机DOM API(例如el.querySelector())或Polymer实例方法(例如el.$$()el.getEffectiveChildren())访问测试夹具的DOM。我在Chrome 53和56上用Shady和Shadow DOM验证了这一点。

此示例向afterEach()添加了几个与DOM相关的断言,该断言在每次测试后运行:

<test-fixture id="basic">
  <template>
    <my-app></my-app>
  </template>
</test-fixture>

<script>
  describe('my-app', function() {
    var el;

    beforeEach(function() {
      el = fixture('basic');
    });

    afterEach(function() {
      expect(el.$$('h2').textContent).to.have.string('Hello');
      expect(el.querySelectorAll('*')).to.have.lengthOf(2);
    });

    it('instantiating the el works', function() {
      expect(el.is).to.equal('my-app');
    });
  });
</script>