簡體   English   中英

如何用 Jest 覆蓋多對一裝飾器?

[英]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__文件夾中__mocks__ ,導出使用的屬性,包括:

export const ManyToOne = jest.fn();

我應該如何開玩笑地編寫我的測試,以便它涵蓋 ManyToOne 裝飾器?

我的猜測是未覆蓋的行不是帶有裝飾器的整行,而只是回調的主體。

因為你已經嘲笑了const ManyToOne = jest.fn(); 您的裝飾器是一個沒有實現且不調用任何傳遞的回調的函數。

因此,如果您將其模擬為一個立即執行並返回給定回調結果的函數

export const ManyToOne = jest.fn(callback => callback());

您應該能夠實現該線路的 100% 覆蓋率

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM