内被动态呈现DOM元素dom-if,dom-repeat <templates>似乎因而被异步呈现使得单元测试一个有点疼痛.
template(is='dom-if', if='{{!defaultPrintAll}}')
template(is='dom-repeat', items='{{_pageBucketItems}}')
button(type='button', class$='{{_computeDefaultClass(item)}}', on-tap='_togglePageClick') {{item}}
Run Code Online (Sandbox Code Playgroud)
test("Clicking 'Export All' to off, reveals board-selection tiles", function() {
$("#export-pdf-checkbox-all").siblings(".checkbox").trigger("click");
Polymer.dom.flush()
expect($(".board-range__button")).to.be.visible;
});
Run Code Online (Sandbox Code Playgroud)
单击触发dom-if/ dom-repeat元素的按钮时,不会以同步顺序呈现.
该dom-if和它的后续/嵌套的dom-repeat异步呈现.
更糟糕的是,在button自身获得的它的类在计算/绑定的方式(介意class$=的button).
所以问题归结为:
是否有可能迫使渲染的dom-if,dom-repeat和计算的结合在一个类的同步后,我模拟点击激活这些条件全部3个按钮顺序?
笔记:
Polymer.dom.flush()但它仍然没有,咳咳..冲洗.chai-as-promised.js它,但它为我的测试添加了不必要的复杂性,这是一个微不足道的事情,所以我想避免它.如何使用.js解决方案中的所有文件测量Polymer组件的公共覆盖范围(对于非组件测试,使用QUnit)?
我试过了karma-coverage,但它只适用于.js文件.