玩笑没有定义

Jac*_*ace 5 typescript reactjs jestjs react-testing-library

我目前正在用打字稿制作一个反应应用程序,我正在使用 react-testing-library 进行测试。该应用程序崩溃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;
Run Code Online (Sandbox Code Playgroud)

Jos*_*osh 0

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

正如OP评论中提到的,始终确保对仅测试全局变量的任何引用仅jest发生在测试文件中。如果您的运行时代码包含对jest全局的引用,那么它将在运行时崩溃,因为 Jest 未用于运行您的应用程序。

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