Reactjs 获得';空';测试时出错';document.getElementByID';线路。我已经尝试了attachTo方法,但也不起作用

Reactjs 获得';空';测试时出错';document.getElementByID';线路。我已经尝试了attachTo方法,但也不起作用,reactjs,jestjs,enzyme,jsdom,Reactjs,Jestjs,Enzyme,Jsdom,我正在使用jest测试我的react函数。在测试时,我得到document.getElementById行的null焦点的错误 我已经试过这个方法了。 但这对我不起作用 这是我的abc.js clearSearch = () => { const { typeSearchBox } = this.props; this.setState({ searchPlaceholderValue: PROMPTRAISED }); this.setSt

我正在使用jest测试我的react函数。在测试时,我得到document.getElementById行的null焦点的错误

我已经试过这个方法了。 但这对我不起作用

这是我的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可清除每个is触发器。

您需要模拟
document.getElementById
函数,以返回测试文件中具有
focus
函数的对象

const mockUpObject = {
  focus: () => null,
};
global.document.getElementById = jest.fn(() => mockUpObject);

请从测试文件中添加代码。我们可以对blur执行相同的操作吗<代码>searchBox.blur()是的,我们可以。可以向mockUpObject添加模糊功能