Фермент: как проверить ключ? - PullRequest
0 голосов
/ 25 мая 2018

У меня есть приложение React, которое реагирует на нажатие клавиши Escape.Это код в приложении:

componentDidMount(){
        document.addEventListener("keydown", this.escFunction.bind(this), false);
    }

В тестовом коде я пишу следующее утверждение:

wrapper.find('document').simulate('keyDown', {keyCode: 27});

Я получил ошибку:

Method “simulate” is only meant to be run on a single node. 0 found instead.

Я также попытался:

wrapper.simulate('keyDown', {keyCode: 27});

, и кажется, что приложение не реагирует на нажатие.

1 Ответ

0 голосов
/ 03 сентября 2018

Вы получаете эту ошибку Метод «имитация» предназначен для запуска только на одном узле.Вместо этого найдено 0. означает, что контейнер не найден.

Сначала проверьте это, чтобы убедиться, что вы получаете узел:

const container = wrapper.find(".class_name");
expect(container.length).to.equal(1);

или это может быть асинхронная загрузка, поэтому, вы не получаете узел.Затем вы должны попытаться с помощью функции setTimeout получить узел.

Внутри функции setTimeout вызовите это:

container.simulate('keydown', {key: 'Escape', keyCode: 27, which: 27});

Может быть, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...