我正在为我的React应用程序使用react-testing-library。 在一个测试用例中,我需要在文本框和焦点输出中填充一些值。
这是测试脚本-
it('searchbox wrapper',async()=>{
let wrapper=getSearchBoxWrapperInstance('')
let inputBox=wrapper.findByTestId('inputText');
inputBox.value='12345';
fireEvent(inputBox,'focusOut');
})
运行测试用例时出现以下错误-
TypeError: element.dispatchEvent is not a function
79 | let inputBox=wrapper.findByTestId('inputText');
80 | inputBox.value='12345';
> 81 | fireEvent(inputBox,'focusOut');
| ^
82 | //fireEvent('Blur',
83 |
84 | //await (() => wrapper.getByText('')))
at fireEvent (node_modules/dom-testing-library/dist/events.js:533:18)
请告知我是否可以提供更多信息
答案 0 :(得分:1)
我假设getSearchBoxWrapperInstance
返回render
的结果。
尝试一下是否可行:
it('searchbox wrapper',async()=>{
let wrapper=getSearchBoxWrapperInstance('')
let inputBox=wrapper.findByTestId('inputText');
fireEvent.change(inputBox, { target: { value: '12345' } });
fireEvent.focusOut(inputBox);
// In alternative you could try fireEvent.blur
})
findByTestId
也可能找不到您的元素。尝试注销以查看是否存在这种情况,或者使用getByTestId
,如果找不到该元素,则会导致错误。