【发布时间】:2022-02-16 19:57:54
【问题描述】:
我正在尝试在 Jest 中模拟一个 Typeorm 模块功能,并且我想以最简洁的方式进行。我设法创造出的作品:
jest.mock("typeorm", () => ({
__esModule: true,
getCustomRepository: jest.fn(),
PrimaryGeneratedColumn: jest.fn(),
Column: jest.fn(),
CreateDateColumn: jest.fn(),
UpdateDateColumn: jest.fn(),
Entity: jest.fn(),
EntityRepository: jest.fn(),
Repository: jest.fn(),
}));
但我只想模拟 getCustomReposity 并且当我只为该功能离开模拟时:
jest.mock("typeorm", () => ({
__esModule: true,
getCustomRepository: jest.fn(),
}));
测试甚至不运行,因为实体和存储库使用了一些来自 Typeorm 的装饰器和类。我还尝试为整个模块生成模拟:
jest.mock("typeorm", () => jest.createMockFromModule("typeorm"));
生成的模拟装饰器出现错误:
TypeError: decorator is not a function
2 |
3 | @Entity({ name: "users" })
> 4 | export class User {
有没有办法以比我更干净的方式创建这样的模拟?
【问题讨论】:
-
关于这个问题有什么新的吗?
标签: typescript unit-testing jestjs typeorm ts-jest