首页 > 解决方案 > Cypress - cypress-react-unit-test 中 mountHook 中的 Stubing/Mocking redux hooks

问题描述

我正在尝试对一个也使用 redux 钩子的自定义钩子进行单元测试,例如useSelector&useDispatch但我收到一个错误,即钩子未包含在Provider. 我正在使用cypress-react-unit-test挂载钩子,但不确定如何解决提供程序问题。任何帮助表示赞赏。

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

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

标签: reactjsunit-testingcypress

解决方案


mountHook 函数接受第二个选项参数。选项之一是wrapper。这可以设置为 React 组件,例如提供程序。

一个例子(来自最近更新的cypress-react-unit-test文档)是:

import { mountHook } from 'cypress-react-unit-test'
const wrapper = ({ children }) => <Provider store={store}>{children}</Provider>
mountHook(() => useCustomHook(), { wrapper })

推荐阅读