Como prueba de la unidad eventos de teclado jQuery?
-
18-09-2019 - |
Pregunta
¿Hay una manera de probar JavaScript controladores de eventos de teclado (por keypress
, keyup
, eventos keydown
)?
Sé que puedo declarar manejadores de eventos como este:
function keyUpEvHandler(e) {
... // code here
}
$('#myId').keyup(keyUpEvHandler);
y luego simplemente ejecutar esta función en pruebas de unidad, pero tendrá que preparar objeto argumento de evento a ser el mismo que pasa cuando se pulsa la tecla real:
var e = {keyCode: 70, ...};
¿Hay alguna manera de activar este evento y pasar código de la llave como un argumento o algo similar? Desafortunadamente jQuery gatillo () docs sin intentar cubrir eventos de teclado.
Solución
Puede pasar datos arbitrarios a través del objeto de evento.
Los documentos:
var event = jQuery.Event("logged");
event.user = "foo";
event.pass = "bar";
$("body").trigger(event);
Lo que puede hacer:
var event = jQuery.Event("keyup");
event.keyCode = 72;
$(".selector").trigger(event);
De esta manera, el caso pasa al controlador (s) tendrá el keyCode
ajustado a lo que quiera.