首页 > 解决方案 > TypeError: jest.mock 不是函数错误

问题描述

我收到一个错误

TypeError: jest.mock is not a function- 当我在这里进行测试时。有人帮我整理一下吗?

在此处输入链接描述

我的测试代码:

import { render, waitFor } from "@testing-library/react";
import { screen } from "@testing-library/dom";
import { mocked } from "ts-jest/utils";
import App from "./App";
import { getUsers } from "./userService";
//import apiForUserName from "../src/__mocks__/API";
const url = "https://jsonplaceholder.typicode.com/users";
jest.mock("./userService");
const mockGetUsers = mocked(getUsers, true);

describe("get username using promise", () => {
  beforeEach(() => {
    mockGetUsers.mockClear();
  });
  beforeEach(async () => {
    render(<App baseURL={url} />);
    await waitFor(() => expect(mockGetUsers).toHaveBeenCalled());
  });
  it("should call getUsers once", async () => {
    render(<App baseURL={url} />);
    await waitFor(() => expect(mockGetUsers).toHaveBeenCalledTimes(1));
  });
  it("should render the username", async () => {
    const name = "John";
    mockGetUsers.mockImplementationOnce(() =>
      Promise.resolve({ username: name })
    );
    render(<App baseURL={url} />);
    expect(screen.queryByText(/username/)).toBeNull();
    expect(await screen.findByText(/name/)).toBeInTheDocument();
    screen.debug();
  });
});

标签: reactjsunit-testingjestjsreact-testing-library

解决方案


CodeSandbox还不支持 jest 手动模拟、快照保存、jest 配置和代码覆盖。见问题#513


推荐阅读