3

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

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

提前致谢!

4

1 回答 1

2

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

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

<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>
于 2016-10-27T17:35:29.110 回答