明確にする:私はJQueryのみ純粋なJSを使用していない、私は "enter"キーをブロックするために単体テストに助けが必要です。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
正直言って、単体テストではとても新しいので、どうやってやるのか分からないので、単体テストでアイデアそれは動作します... –