簡體   English   中英

TypeError:_reactQuery.default 不是構造函數

[英]TypeError: _reactQuery.default is not a constructor

大家好,我正在使用 jest 和酶為反應應用程序編寫單元測試一切進展順利,但由於 QueryClient、QueryClientProvider 突然出現錯誤

我正在嘗試從我的應用程序中拍攝快照,但出現此錯誤

TypeError: _reactQuery.default is not a constructor

它與反應查詢有關,任何人都可以幫忙!

這是我的代碼

應用程序.js

import { QueryClient, QueryClientProvider } from "react-query";
import { Dashboard } from "./components/Dashboard";

import "./App.css";

const queryClient = new QueryClient();

export function App() {
  return (
    <QueryClientProvider client={queryClient}>
      <Dashboard />
    </QueryClientProvider>
  );
}

export default App;

應用程序.test.js

import { render, screen } from '@testing-library/react';
import { QueryClient, QueryClientProvider } from "react-query";
import renderer from 'react-test-renderer';

import { App } from './App';

describe("<App /> component:", () => {
  const { queryClient } = new QueryClient({
    defaultOptions: {
      queries: {
        staleTime: Infinity,
      },
    },
  });

  it('renders correctly', () => {
    const tree = renderer
      .create(
        <QueryClientProvider client={queryClient}>
        <App />
        </QueryClientProvider>
        )
      .toJSON();
    expect(tree).toMatchSnapshot();
  });

  test('renders loading', () => {
    render(<App />);
    const linkElement = screen.getByText(/Loading.../i);
    expect(linkElement).toBeInTheDocument();
  });
});

setupTest.js

import '@testing-library/jest-dom';
import { configure } from "enzyme";
import Adapter from '@wojtekmaj/enzyme-adapter-react-17';

configure({adapter: new Adapter()});

jest.mock('react-chartjs-2', () => ({
  Bar: () => null, // add any additional chart types here
  Line: () => null
}));

jest.mock('react-query', () => ({ 
  useQuery: () => ({ isLoading: false, isError: false, data: [], }),
  useMutation: () => ({ mutate: {}, isError: false, isLoading: false }),
  useQueryClient: () => null,
}));

您在 App.test.js 中將默認值導入為 QueryClient

import { default as QueryClient, QueryClientProvider } from "react-query";

但 react-query 沒有默認導出。 像在應用程序中一樣將其作為命名導入導入:

import { QueryClient, QueryClientProvider } from "react-query";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM