Det*_*ned 7 javascript mocha.js keyboard-events dom-events sinon
我正试图找出测试此方法的最佳方法:
document.addEventListener("keydown", function (event) {
var modifiers = event.altKey || event.ctrlKey || event.metaKey ||
event.shiftKey;
var mapped = map[event.which];
if (!modifiers) {
if (mapped !== undefined) {
event.preventDefault();
self.emit("move", mapped);
}
}
});
Run Code Online (Sandbox Code Playgroud)
我想确保如果键是修饰符或者键没有映射,则没有任何反应,但是,如果它们是,则监视self.emit函数.
我可以用sinon来做。这是我的解决方案:
it('adds listener events', function() {
sinon.spy(document, 'addEventListener')
sinon.spy(window, 'addEventListener')
expect(document.addEventListener.calledOnce).not.to.be.true
expect(window.addEventListener.calledOnce).not.to.be.true
subject.myFunc()
expect(document.addEventListener.calledOnce).to.be.true
expect(window.addEventListener.calledOnce).to.be.true
})
Run Code Online (Sandbox Code Playgroud)
例如,就我而言,我必须测试窗口focus和文档。click
希望能帮助到你