получение ошибки «NULL» при тестировании строки «document.getElementByID». Я уже пробовал подход attachTo, но он тоже не работает

Я тестирую свою функцию реакции с помощью шутки. Во время тестирования я получаю сообщение об ошибке focus of null для строки document.getElementById.

Я уже пробовал это решение. jest + энзим, используя mount (), document.getElementById () возвращает null для компонента, который появляется после вызова _method. Но у меня это не работает.

это мой abc.js

clearSearch = () => {
        const { typeSearchBox } = this.props;
        this.setState({ searchPlaceholderValue: PROMPTRAISED });
        this.setState({ searchValue: '' });
        this.setState({ showClearIcon: false });
        const searchBox = document.getElementById(`SearchBox_${typeSearchBox}`);
        searchBox.focus();
    };

это мой abc.test.js

it('+++ inputs valid filtered search text', () => {
     categoryWrapper.find('ClearIcon').prop('onClick')();
});

по щелчку clearIcon clearseach запускается.


person aToz    schedule 25.07.2019    source источник
comment
Пожалуйста, добавьте код из тестового файла.   -  person Clarity    schedule 25.07.2019


Ответы (1)


Вам нужно имитировать document.getElementById функцию, чтобы вернуть объект с focus функцией в вашем тестовом файле.

const mockUpObject = {
  focus: () => null,
};
global.document.getElementById = jest.fn(() => mockUpObject);
person Tien Duong    schedule 25.07.2019
comment
можем ли мы сделать то же самое для размытия? searchBox.blur(); - person aToz; 25.07.2019
comment
Да мы можем. Вы можете добавить функцию размытия в mockUpObject - person Tien Duong; 25.07.2019