2016-06-06 2 views
2

Я пытался использовать ключевые события с помощью утилиты Enzyme test, но у меня нет успеха. Я попыталсяТестирование ключевых событий на React.JS с ферментом

combo.find(".searchInput").simulate("keydown", { keyCode: 40 }); 

и

combo.find(".searchInput").simulate("keydown", { target: { keyCode: 40 } }); 

но никто не похоже на работу. Кто-нибудь знает правильный синтаксис для имитации ключевых событий с помощью фермента?

ответ

3

Есть две потенциальные проблемы. Во-первых, вам нужно использовать camelCase «keyDown» вместо «keydown». Во-вторых, вам может потребоваться передать больше данных относительно кода ключа, который вы проверяете.

combo.find(".searchInput").simulate("keyDown", { target: { 
    keyCode: 40, 
    which: 40, 
    key: "Down Arrow" // not sure if this is right, you might need to debug to inspect the real value in console 
} }); 
+0

Я пытался что-то подобное, я посмотрел ключевые имена в этом списке [ссылка] (http://www.cambiaresearch.com/articles/15/javascript-key-codes), но что не работает – darkjoker

+0

В этом выражении цель не нужна, например, здесь https://stackoverflow.com/a/47639464/3460363 – Insomniac631