赛普拉斯-赛普拉斯反应单元测试中的mountHook中的存根/模拟Redux钩子

时间:2020-11-12 16:31:09

标签: reactjs unit-testing cypress

我正在尝试对也使用redux钩子(例如useSelectoruseDispatch)的自定义钩子进行单元测试,但是我收到一个错误消息,该钩子没有包装在Provider中。我正在使用cypress-react-unit-test来安装挂钩,但是不确定如何解决提供程序问题。任何帮助表示赞赏。

在内部,他们在组件内部调用该钩子,所以我想知道是否有一种方法可以更改它。

  it('Check Groups keys for String', () => {
    mountHook(() => useGroups())
      .then(uesGroupsResults => {
        // assert here...
      });
  });

1 个答案:

答案 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 })