在 Polymer 中发生更改事件后调用 unit/functional 测试断言

Calling unit/functional test assertions after change events in Polymer

我一直在用 Mocha 编写一些功能测试,更改项目,然后检查更改是否正确传播。目前,我正在使用 window 超时来让 Polymer 有时间更新元素,但这感觉像是 hack。开发人员指南概述了几种不同的观察挂钩,但我不确定应该调用哪一种。

听起来最接近的是 a recommendation 将异步调用附加到 propertyChanged 事件。但是,许多项目使用 propertyChanged,将异步任务附加到 propertyChanged 事件是否会可靠地调用异步任务 附加到原始 propertyChanged 的​​元素方法被调用之后?

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

我看错地方了,正确的地方是 Polymer 的异步部分 testing how-to。正确使用的函数是 flush(callback),它将 "trigger a flush of any pending events and observations, ensuring that notification callbacks are dispatched after they have been processed."

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

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

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

  //test two ...