如何在React中使用jest和Enzyme模拟一个功能组件的方法?

问题描述 投票:1回答:1
import React from 'react';

export const HomePage = () => {

     const fetchResults = () => {
          return new Promise((resolve) => {
            Adaptor.fetch();
         });
        }
    const [initialState, dispatch] = useTableState();
    if (initialState.fetchNew) {
        let promise = fetchResults().then((res) => {
            //dispatch
        })
        throw promise;
    }
    return <Content />
}

我需要嘲讽 fetchResults 方法,使其返回一个有模拟json结果的解析承诺。尝试了很多方法,但都没有成功。

其中一个方法是:-

 jest.mock("../components/homePage", () => {
            return {
                fetchResults: () => {
                return  Promise.resolve({data: [{value: 'test'}]});
              },
            };
          });

谁能帮我解决这个问题。

先谢谢你。

reactjs unit-testing enzyme jest
1个回答
0
投票

你缺少的是返回默认值,也可以直接设置模拟数据。

jest.mock("../components/homePage", () => {
  return {
    default: () => {
      return <Content {...mockedData} />;
    },
  };
});
© www.soinside.com 2019 - 2024. All rights reserved.