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