how to simulate keypress for unit testing in jasmine

大憨熊 提交于 2019-12-11 05:06:38

问题


I need to unit test function that is triggered when key pressed.

public onKeyDown(event: KeyboardEvent): void {
    if (event.ctrlKey && event.keyCode === 38) {
      console.log('increase');
    }
    if (event.ctrlKey && event.keyCode === 40) {
      console.log('decrease');
    }

    /* Prevent entering characters */
    if (event.keyCode >= 65 && event.keyCode <= 90) {
      return;
    }
  }

How can I simulate keypress to satisfy the fist condition, for example?


回答1:


The example code below shows how an event is created, triggered, and intercepted.

var keyPressed = null;

function keyPress(key) {
  var event = document.createEvent('Event');
  event.keyCode = key;
  event.initEvent('keydown');
  document.dispatchEvent(event);
}

document.addEventListener('keydown', function(e){
   keyPressed = e.keyCode;
});

keyPress(37)
alert(keyPressed);


来源:https://stackoverflow.com/questions/39594100/how-to-simulate-keypress-for-unit-testing-in-jasmine

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!