我目前正在使用打字稿制作一个反应应用程序,并且正在使用反应测试库进行测试。应用程序崩溃并伴有
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;
jest
全局仅在测试期间定义。它是由 Jest 测试运行程序添加的。
正如OP评论中提到的,始终确保对仅测试全局变量(例如
jest
)的任何引用仅发生在test文件中。如果您的运行时代码包含对 jest
全局的引用,那么它会在运行时崩溃,因为 Jest 没有用于运行您的应用程序。
如果您看到引用
jest
全局的崩溃,则意味着您的 runtime 代码意外地从 test 代码导入。确保运行时文件永远不会使用 jest
全局变量导入任何内容 - 即使是传递性的(例如 App.tsx
导入 shared.ts
导入 tests.ts
,其中 tests.ts
使用 jest
)。