在聚合物1. *中,我正在写一个测试。我的原始元素有一个就绪处理程序,它可以作用于dom-change。
WCT没有提供在ready处理程序中存根任何东西的方法。它也不允许我在元素标记的确切时间在主机属性上存根数据,就绪处理程序立即使用它。
在测试中标记元素后,就绪处理程序中的任何内容都会调用。
要解决这个问题,我正在尝试压制dom change事件,但它无效。
任何想法如何阻止就绪处理程序在测试中调用?
原始代码:
_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',