Files
flying-hero 96f6318101 📦 添加虚拟环境和启动脚本
新增:
- backend/venv/ - Python 虚拟环境
- backend/start.sh - 启动脚本(使用虚拟环境)
- backend/requirements.txt - 依赖列表
- .gitignore - 忽略虚拟环境和缓存文件

说明:
- 每个项目使用独立虚拟环境
- 避免依赖冲突
- 启动脚本自动创建和激活虚拟环境
2026-04-04 18:29:02 +08:00

1.3 KiB

Suggest using jest.spyOn() (prefer-spy-on)

When mocking a function by overwriting a property you have to manually restore the original implementation when cleaning up. When using jest.spyOn() Jest keeps track of changes, and they can be restored with jest.restoreAllMocks(), mockFn.mockRestore() or by setting restoreMocks to true in the Jest config.

Note: The mock created by jest.spyOn() still behaves the same as the original function. The original function can be overwritten with mockFn.mockImplementation() or by some of the other mock functions.

Date.now = jest.fn(); // Original behaviour lost, returns undefined

jest.spyOn(Date, 'now'); // Turned into a mock function but behaviour hasn't changed
jest.spyOn(Date, 'now').mockImplementation(() => 10); // Will always return 10
jest.spyOn(Date, 'now').mockReturnValue(10); // Will always return 10

Rule details

This rule triggers a warning if an object's property is overwritten with a jest mock.

Default configuration

The following patterns are considered warnings:

Date.now = jest.fn();
Date.now = jest.fn(() => 10);

These patterns would not be considered warnings:

jest.spyOn(Date, 'now');
jest.spyOn(Date, 'now').mockImplementation(() => 10);