【发布时间】:2021-08-06 10:24:01
【问题描述】:
我正在学习用 React 编写单元测试。测试应该检查当输入字段发生变化时是否调用了 onChange 函数。这是我的简单搜索栏组件:
import {Input} from './Input';
const SearchBar = (props) => {
return (
<Input
type="search"
data-test="search"
onChange={e => props.onSearch(e.target.value)} />
);
};
export default SearchBar;
我写的测试应该模拟输入字段的变化,然后应该调用函数调用。
describe('Search', () => {
afterEach(() => {
jest.clearAllMocks();
});
it('Should call onSearch function', () => {
const wrapper = mount(<SearchBar onSearch={onSearch}/>);
const searchBar = wrapper.find('[data-test=search]').at(0);
searchBar.simulate('change', {target: { 'test' }});
expect(onSearch).toBeCalledTimes(1);
});
});
这里,函数根本没有被调用,而不是被调用 1 次。我不知道为什么。你能解释一下我在哪里做错了吗?
【问题讨论】:
标签: reactjs unit-testing testing jestjs enzyme