如何用 Jest 覆盖 ManyToOne 装饰器?
How to cover a ManyToOne decorator with Jest?
我有一个带有@ManyToOne 装饰器的实体。问题是我的 Jest 单元测试没有覆盖那一行,即使它覆盖了其他装饰器。
实体(简体):
@Entity({ name: 'user' })
export default class User {
@PrimaryGeneratedColumn('uuid')
public id: string;
@Column({ name: 'username' })
@IsNotEmpty()
@MinLength(3)
@MaxLength(30)
public username: string;
@ManyToOne(() => Account)
@IsNotEmpty()
@JoinColumn({ name: 'account_id', referencedColumnName: 'id' })
public account: Account;
typeorm
也在__mocks__
文件夹中mock,导出使用的属性,包括:
export const ManyToOne = jest.fn();
我应该如何用 jest 编写我的测试以便覆盖 ManyToOne 装饰器?
我的猜测是非覆盖行不是装饰器的整行,而只是回调的主体。
因为你已经嘲笑了 const ManyToOne = jest.fn();
你的装饰器是一个没有实现并且不调用任何传递的回调的函数。
因此,如果您将其模拟为一个立即执行的函数,并且 returns 给定回调的结果
export const ManyToOne = jest.fn(callback => callback());
你应该能够实现那条线的 100% 覆盖率
我有一个带有@ManyToOne 装饰器的实体。问题是我的 Jest 单元测试没有覆盖那一行,即使它覆盖了其他装饰器。
实体(简体):
@Entity({ name: 'user' })
export default class User {
@PrimaryGeneratedColumn('uuid')
public id: string;
@Column({ name: 'username' })
@IsNotEmpty()
@MinLength(3)
@MaxLength(30)
public username: string;
@ManyToOne(() => Account)
@IsNotEmpty()
@JoinColumn({ name: 'account_id', referencedColumnName: 'id' })
public account: Account;
typeorm
也在__mocks__
文件夹中mock,导出使用的属性,包括:
export const ManyToOne = jest.fn();
我应该如何用 jest 编写我的测试以便覆盖 ManyToOne 装饰器?
我的猜测是非覆盖行不是装饰器的整行,而只是回调的主体。
因为你已经嘲笑了 const ManyToOne = jest.fn();
你的装饰器是一个没有实现并且不调用任何传递的回调的函数。
因此,如果您将其模拟为一个立即执行的函数,并且 returns 给定回调的结果
export const ManyToOne = jest.fn(callback => callback());
你应该能够实现那条线的 100% 覆盖率