简体   繁体   English

如何在茉莉花中模拟按键进行单元测试

[英]how to simulate keypress for unit testing in jasmine

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? 例如,如何模拟按键以满足第一个条件?

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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM