unit-testing - 如何在 redux 中使用 renderHook
问题描述
我尝试使用 renderHook 来编写我的测试。在遵循一些示例之后,我遇到了wrapper
要it
多次使用的问题。我该怎么做?
import {Provider} from 'react-redux';
import {QueryClient, QueryClientProvider} from 'react-query';
import {createStore} from 'redux';
function todos(state = [], action) {
switch (action.type) {
case 'ADD_TODO':
return state.concat([action.text])
default:
return state
}
}
const store = createStore(todos, ['Use Redux'])
it('countd', async () => {
const store = createStore(todos, ['+ num', '+ num', '- num'])
const wrapper: React.FC = ({children}) => (
<Provider store={store}>
<QueryClientProvider client={new QueryClient()}>{children}</QueryClientProvider>
</Provider>
);
const {result} = renderHook(() => useInfoHook(), {wrapper});
result.current.onFindInfo();
expect(store.getState().Add_TODO).toEqual([]);
});
});
解决方案
推荐阅读
- variables - 我想使用带变量的 sed 命令,同时在运行时给出变量的值
- go - 在 golang 中设计警报服务,当数据库数据满足某些条件时会发出警报
- architecture - 架构:CQS、业务逻辑
- c# - 将资源文件中的标题传递给剔除数据绑定属性
- python - python中的“域\用户”在字符串中不正确的反斜杠处理
- c# - WPF C#在悬停时更改按钮图像
- javascript - 在 RSS 提要中将 IST 日期转换为 UTC
- android - 引起:java.lang.NoClassDefFoundError: org/jetbrains/kotlin/annotation/plugin/ide/AnnotationBasedPluginModelBuilderService
- apache - Mac OS Catalina 网络服务器错误:禁止您无权访问此资源
- javascript - 谷歌表格。根据答案发送电子邮件。命名值错误