1

在聚合物 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',
4

0 回答 0