笑话未定义

问题描述 投票:0回答:1

我目前正在使用打字稿制作一个反应应用程序,并且正在使用反应测试库进行测试。应用程序崩溃并伴有

ReferenceError: jest is not defined
。不过我所有的测试都通过了。

以前,一切正常。唯一改变的是我重新组织了一些文件。

代码:

import { FormProps } from "../containers";

const onChange = jest.fn(); // The problem
const history: any = jest.fn();
const location: any = jest.fn();
const match: any = jest.fn();

const TestProps: FormProps = {
  onChange,
  history,
  location,
  match,
};

export default TestProps;
reactjs typescript jestjs react-testing-library
1个回答
0
投票

jest
全局仅在测试期间定义。它是由 Jest 测试运行程序添加的。

正如OP评论中提到的,始终确保对仅测试全局变量(例如

jest
)的任何引用仅发生在test文件中。如果您的运行时代码包含对
jest
全局的引用,那么它会在运行时崩溃,因为 Jest 没有用于运行您的应用程序。

如果您看到引用

jest
全局的崩溃,则意味着您的 runtime 代码意外地从 test 代码导入。确保运行时文件永远不会使用
jest
全局变量导入任何内容 - 即使是传递性的(例如
App.tsx
导入
shared.ts
导入
tests.ts
,其中
tests.ts
使用
jest
)。

© www.soinside.com 2019 - 2024. All rights reserved.