在聚合物 1.* 中,我正在编写一个测试。我的原始元素有一个现成的处理程序,它作用于 dom-change。
WCT 不提供在就绪处理程序中存根任何内容的方法。它也不允许我在元素被标记的确切时间存根主机属性上的数据,准备好的处理程序立即使用。
一旦元素在测试中被标记,就绪处理程序中的任何内容都会调用。
为了解决这个问题,我正在尝试抑制 dom 更改事件,但它无效。
有什么想法可以阻止准备好的处理程序在测试中调用吗?
原始代码:
_setAnswers: function(answers) {
var radioGroups =
Polymer.dom(this.root).querySelectorAll('paper-radio-group');
var radioGroupsArray = Array.prototype.slice.call(radioGroups);
answers.forEach(this._setAnswer.bind(this, radioGroupsArray));
},
_setRadioDefaults: function() {
this._setAnswers(this.answers.answers);
this._setParentFieldAnswer(this.answers.answers[0].value);
},
ready: function() {
this.$$('#fields').addEventListener('dom-change',
this._setRadioDefaults.bind(this), {once: true});
},
原始测试:
<test-fixture id="sp-non-cash-benefits-form-edit">
<template>
<h2>sp non cash benefits edit form</h2>
<sp-non-cash-benefits-form-edit></sp-non-cash-benefits-form-edit>
</template>
</test-fixture>
测试 dom 更改的位置被禁用
'sp-static-forms/sp-non-cash-benefits/sp-non-cash-benefits-form-edit.html?dom=shady&suppressDomChange=true',