reactjs - 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();
});
});
解决方案
CodeSandbox还不支持 jest 手动模拟、快照保存、jest 配置和代码覆盖。见问题#513
推荐阅读
- spring - 使用spring缓存时如何获取cacheKey?
- macos - 在第一次鼠标/触控板单击视图之前,不会在 NSScrollView 子类中调用 touchesBegan
- scheme - 关于 Scheme 上的“with-input-from-file”命令
- c++ - 查找和替换字符串中的单词
- ios - iOS 上的 Metal:何时读取 visibilityResultBuffer?
- python - 对象没有属性“保存”
- c# - 使用正则表达式替换多个标题名称
- java - 如何从一个由多个动词和介词组成的复杂句子中获得主语、动词和宾语?
- python - while循环python可以只执行一次语句吗?
- php - FosElasticaBundle 填充序列化程序不索引所有字段