Web 组件测试器:访问 DOM
Web Component Tester: Accessing the DOM
我有数百个 Polymer 测试套件。在每次测试结束时,我想访问 DOM 进行一些自定义质量检查。
写一个 wct 插件可以吗?如果是这样,我应该如何从插件中访问 DOM?
提前致谢!
无需插件。您已经可以使用本机 DOM API(例如,el.querySelector()
)或使用 Polymer 实例方法(例如,el.$$()
or el.getEffectiveChildren()
)访问测试夹具的 DOM。我在 Chrome 53 和 56 上用 Shady 和 Shadow DOMs 验证了这一点。
此示例将几个 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>
我有数百个 Polymer 测试套件。在每次测试结束时,我想访问 DOM 进行一些自定义质量检查。
写一个 wct 插件可以吗?如果是这样,我应该如何从插件中访问 DOM?
提前致谢!
无需插件。您已经可以使用本机 DOM API(例如,el.querySelector()
)或使用 Polymer 实例方法(例如,el.$$()
or el.getEffectiveChildren()
)访问测试夹具的 DOM。我在 Chrome 53 和 56 上用 Shady 和 Shadow DOMs 验证了这一点。
此示例将几个 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>