reactjs - 如何使用 Jest/Enzyme 测试子组件中的回调函数 prop
问题描述
我目前正在使用带有 typescript 的 react-native,并且正在努力使用 jest/enzyme 测试子组件。
我目前正在尝试测试道具“updateToDoInput”中的回调函数已传递给我的 InputBar 组件,例如
render() {
return (
<View style={styles.container}>
<Header Title="ToDo App" />
<InputBar
todosInput={this.state.todosInput}
updateToDoInput={(updateInput: string) => this.setState({ todosInput: updateInput })}
/>
</View>
);
}
对于我的测试,我有:
describe('<App /> Component', () => {
it('renders <InputBar /> with props "todosInput" and "updateToDoInput"', () => {
const wrapper = shallow(<App />);
expect(wrapper
.contains(<InputBar
todosInput={wrapper.state("todosInput")}
updateToDoInput={(updateInput: string) => wrapper.setState({ todosInput: updateInput })}
/>))
.toEqual(true);
});
});
测试失败并返回 false。我想我正在为“updateToDoInput”道具编写测试错误。
我对测试很陌生,如何测试一个在我的子组件中作为道具传递的 setState 的函数?
PS。我也尝试使用 console.log(wrapper.debug()); 我得到以下输出:
<View style={{...}}>
<Header Title="ToDo App" />
<InputBar todosInput="" updateToDoInput={[Function: updateToDoInput]} />
</View>
不知道这意味着什么,任何帮助将不胜感激!
解决方案
推荐阅读
- python - How to split the csv file with line numbers which pass as parameter and save into different files
- javascript - 如何使用函数发出 api 获取请求?
- javascript - 当父应用程序选项卡关闭时触发 iframe 应用程序中的卸载事件
- xml - 是否有任何可以将 XML 内容读入 KAFKA 的 Kafka 连接器?
- linux - 如何使用 sed 替换文件中的值
- java - 上传多部分文件列表时springboot出错
- dialogflow-es - 如何通过 Dialogflow Fulfillment 向 Facebook 发送快速回复
- keras - Keras 中的 VAE 在 3 类图像上可视化潜在空间
- docker - 如何使用 Dockerfile 完全将 weblogic 应用程序部署为 docker 容器?
- azure - 将数据工厂的公共访问权限从启用更改为禁用的 Powershell 命令