Polymer 聚合物变更事件后调用单元/功能测试断言

Polymer 聚合物变更事件后调用单元/功能测试断言,polymer,web-component-tester,Polymer,Web Component Tester,我一直在用摩卡编写一些功能测试,更改项目,然后检查更改是否正确传播。目前,我使用窗口超时来给聚合物时间来更新元素,但这感觉像是一个黑客。《开发人员指南》概述了几种不同的观察挂钩,但我不确定应该调用哪一种 听起来最接近的方法是将异步调用附加到propertyChanged事件。但是,许多项使用propertyChanged,将异步任务附加到propertyChanged事件会在调用附加到原始propertyChanged的元素方法后可靠地调用异步任务吗 有关给定解决方案是否与Polymer 1.0

我一直在用摩卡编写一些功能测试,更改项目,然后检查更改是否正确传播。目前,我使用窗口超时来给聚合物时间来更新元素,但这感觉像是一个黑客。《开发人员指南》概述了几种不同的观察挂钩,但我不确定应该调用哪一种

听起来最接近的方法是将异步调用附加到propertyChanged事件。但是,许多项使用propertyChanged,将异步任务附加到propertyChanged事件会在调用附加到原始propertyChanged的元素方法后可靠地调用异步任务吗


有关给定解决方案是否与Polymer 1.0(或.8/.9)向前兼容的信息的额外积分。

我找错了位置,正确的位置是Polymer的异步部分。正确使用的函数是
flush(callback)
,它将“触发任何挂起事件和观察的刷新,确保在处理完通知回调后进行调度。”

他们的文档将测试放在一起,我更喜欢每个测试套件和每个测试的单独元素。这在调试功能测试时特别有用,因为更改被保留,并且设置断点更容易:

  before(function(done){
    nonMatchingEl.search = "";
    flush(done);
  });

  test('updates the "pre" property', function() {
    assert.equal(nonMatchingEl.pre, 'prematch-hello-postmatchhello');
  });

  //test two ...