检查是否使用 mocha 触发了一个事件
checking that an event fired with mocha
如何测试元素是否触发了 mocha 事件?我有一个丑陋的解决方案,但它不是很可读,失败时需要很长时间才能超时,并且没有提供良好的失败消息。
describe('test-element', function() {
var el;
beforeEach(function() {
el = document.createElement('test-element');
});
it('fires a save event', function(done) {
el.addEventListener('save', function() {
done();
});
el.save();
});
在一个完美的世界里,我觉得这样的东西会更酷。
it('fires a save event', function() {
el.save();
expect(el).to.have.firedEvent('save');
});
});
我这样做的方式正确吗?我应该使用更好的方法或自定义匹配器库吗?
如何监视 fire
函数...?
不确定您使用的 stubbing/spying 库,但可以说 Sinon.JS。所以像...
var spy = sinon.spy(el, 'fire');
el.save();
expect(spy.calledWith('save')).to.be.true;
如何测试元素是否触发了 mocha 事件?我有一个丑陋的解决方案,但它不是很可读,失败时需要很长时间才能超时,并且没有提供良好的失败消息。
describe('test-element', function() {
var el;
beforeEach(function() {
el = document.createElement('test-element');
});
it('fires a save event', function(done) {
el.addEventListener('save', function() {
done();
});
el.save();
});
在一个完美的世界里,我觉得这样的东西会更酷。
it('fires a save event', function() {
el.save();
expect(el).to.have.firedEvent('save');
});
});
我这样做的方式正确吗?我应该使用更好的方法或自定义匹配器库吗?
如何监视 fire
函数...?
不确定您使用的 stubbing/spying 库,但可以说 Sinon.JS。所以像...
var spy = sinon.spy(el, 'fire');
el.save();
expect(spy.calledWith('save')).to.be.true;