首页 > 解决方案 > 笑话:TypeError:Cannod 读取未定义的属性“fn”

问题描述

我有一个必须使用 jest 测试的标头组件。header 组件接受三个 props setIsDark(function), setMode(function), isDark(boolean)。我想写一个简单的测试,但它给了我这个错误:Cannot read property 'fn' of undefined

这是我的测试文件tests /header.js

import React from "react";
import { render } from "@testing-library/react";
import Header from "../header";
import jest from "jest-mock";

test("temp", () => {
  expect(true).toBe(true);
});

test("header renders some text", () => {
  const setIsDark = jest.fn();
  const setMode = jest.fn();
  const isDark = true;

  const { debug } = render(
    <Header setMode={setMode} isDark={isDark} setIsDark={setIsDark} />,
  );
  debug();
});

编辑:不使用玩笑我得到TypeError: instace.getTotalLength is not a function

有人可以指出我在这里做错了什么。提前致谢。

标签: javascriptreactjstestingjestjs

解决方案


好吧,您正在导入jest-mock库而不是jest

如果您在项目中正确安装了 jest,则不必在测试中导入它,因此如果删除 import jest from "jest-mock";,您可以使用jest.fn()而不会出现任何错误。


推荐阅读