在我们的 ember 应用程序的 mocha-phantomjs 单元测试中,我将一些事件侦听器添加到video
DOM 中的元素:
didInsertElement: function() {
this._super();
var video = this.$('.video-review').get(0);
var self = this;
video.addEventListener('error', function(err){
self.set('isReviewEnabled', false);
console.error(video.error);
}, false);
},
现在我需要测试video
引发错误的元素并断言优雅降级代码正确执行:
test("add video", function(done) {
Ember.run(function() {
widget.setFile({type: 'video/mp4', size: 100000});
// should cause video element to throw error
});
// app gracefully degrades and is able to upload without .video-review
findWithAssert('.alert-upload-ready')
我所有的 ember 代码都按预期执行,除了永远不会触发的 DOM 视频元素事件侦听器。优雅降级取决于此事件侦听器的触发。所以我想我的问题归结为:?
如何在 ember mocha-phantomjs 测试中强制/模拟 DOM 元素事件?