尝试运行以下测试: 有一些onChange事件,这里仅是一个示例。运行测试时,我不断收到以下错误:
方法“模拟”旨在在1个节点上运行。改为找到0。
不确定我是否正确调用状态。也可能是另一种方法,因为onChange事件位于Modal内部。 使用Jest / Enzyme测试我的文件。 (反应JS)
这是我的DataFile.test.js
describe('Test', () => {
let wrapper;
beforeEach(() => wrapper = mount(<BrowserRouter><DataFile{...baseProps} /></BrowserRouter>));
it('Test onChange event on FirstName - Label', () => {
baseProps.onChange.mockClear();
wrapper.setState({
quickFilterModalOpen: false,
selectedQuickfilter: true,
advancedFilter: {
FirstName: 'test-FirstName',
},
});
wrapper.update();
wrapper.find('input[id="fname-label-test"]').simulate('change', { target: { value: 'test-FirstName' } });
expect(wrapper.state().FirstName).toEqual('test-FirstName1');
});
这是File.js渲染方法:
<Modal isOpen={this.state.quickFilterModalOpen} style={descriptionModalStyle}>
<div>
<label>First Name</label>
<input
id="fname-label-test"
onChange={(e) => { this.setState({ advancedFilter: { ...this.state.advancedFilter, FirstName: e.target.value } }); }}
value={this.state.advancedFilter.FirstName}
/>
</div>
</Modal>;