我正在尝试对也使用redux钩子(例如useSelector
和useDispatch
)的自定义钩子进行单元测试,但是我收到一个错误消息,该钩子没有包装在Provider
中。我正在使用cypress-react-unit-test
来安装挂钩,但是不确定如何解决提供程序问题。任何帮助表示赞赏。
在内部,他们在组件内部调用该钩子,所以我想知道是否有一种方法可以更改它。
it('Check Groups keys for String', () => {
mountHook(() => useGroups())
.then(uesGroupsResults => {
// assert here...
});
});
答案 0 :(得分:0)
mountHook函数接受第二个options参数。选项之一是wrapper
。可以将其设置为React组件,例如提供者。
一个示例(来自最近更新的cypress-react-unit-test
文档)是
import { mountHook } from 'cypress-react-unit-test'
const wrapper = ({ children }) => <Provider store={store}>{children}</Provider>
mountHook(() => useCustomHook(), { wrapper })