【问题标题】:Unit test gatsby useStaticQuery custom hook单元测试 gatsby useStaticQuery 自定义钩子
【发布时间】:2020-05-25 04:57:46
【问题描述】:

我正在尝试测试一个仅在 gatsby 中返回 graphql 数据的自定义钩子。 这是我到目前为止所拥有的,但它给了我一个错误。

挂钩 useMyData

    import { useStaticQuery, graphql } from 'gatsby';

    export default () => {
      const {
        content: { data },
      } = useStaticQuery(graphql`
        query myQuery {
          content {
            data {
              views: 10
            }
          }
        }
      `);
      return data;
    };

玩笑测试 从'./useMyData'导入useMyData;

jest.mock('./useMyData', () => ({
  __esModule: true,
  default: () => ({
    useStaticQuery: () => ({
      content: {
        data: {
          test: 'test',
        },
      },
    }),
  }),
}));

test('data is returned', () => {
  const data = useMyData();
  // console.log('data = ', data);
});

上面没有运行useStaticQuery。任何人都知道我将如何测试它。

【问题讨论】:

标签: jestjs gatsby


【解决方案1】:

您需要直接在gatsby 模块上模拟useStaticQuery 方法,而不是在./useMyData 上。大致如下:

jest.mock('gatsby', () => ({
  __esModule: true,
  useStaticQuery: () => ({
    content: {
      data: {
        test: 'test',
      },
    },
  }),
}));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-07
    • 2022-01-13
    • 2020-07-10
    • 1970-01-01
    • 2020-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多