澄清:我沒有使用JQuery只有純JS,我需要幫助單元測試,因爲阻止「輸入」鍵工作正常。e.keyCode分支未涉及javascript
我被困在單元測試中,我試圖計算如何在單元測試中覆蓋addEventListener keyCode = 13的「分支未覆蓋」,以防止用戶按下輸入並提交意外形式,但我很單純的新手測試,有人可以幫助我嗎?
下面的代碼:
Newsletter.js
var Newsletter = (function() {
function Newsletter(handler) {
this.handler = handler;
this.blockKeyEnter = this.blockKeyEnter.bind(this);
this.handler.addEventListener('keypress', this.blockKeyEnter, false);
}
Newsletter.prototype.blockKeyEnter = function blockKeyEnter(e) {
var key = e.charCode || e.keyCode || 0;
if (key === 13) {
e.preventDefault();
}
};
}
Newsletter.spec.js
describe('Newsletter component specification', function() {
var form;
beforeEach(function() {
form = {
addEventListener: function() {},
};
})
it('should intercept enter keypress event and prevent it', function() {
var event = {
keyCode: 13,
charCode: 13,
preventDefault: sinon.spy()
};
var newLetter = new Newsletter(form);
newLetter.blockKeyEnter(event);
assert(event.preventDefault.called);
});
}
我試圖全面的 「分支沒有覆蓋」,但我缺乏想法進展。
似乎你的單元測試不理解邏輯OR。如何以及如何測試這個 – adeneo
老實說,我在單元測試中很新,我不知道該怎麼做,所以我需要單元測試的幫助來了解如何它的工作原理... –