首頁  >  問答  >  主體

為什麼 jest.mock 回傳具有預設屬性的模擬物件?

我試著模擬一個對象,如下所示:

export default person = {
   firstName: "xxx",
   LastName: "xxx",
   getFullName: () => this.firstName + this.LastName
}

jest.mock('../person', () => ({
  getFullName: () => "John Smith"
}));

所以我只想模擬 getFullName 方法,但當我執行 jest 時,我發現 person 被模擬為:

{
   default: { getFullName: () => "John Smith" }
   ...
}

我怎麼才能擺脫我只想要的「預設」屬性:

{
   getFullName: () => "John Smith"
}

P粉547420474P粉547420474400 天前687

全部回覆(1)我來回復

  • P粉041856955

    P粉0418569552023-09-16 21:48:22

    您可以將mock替換為spyOn方法。

    jest.spyOn(person, 'getFullName').mockImplementation(() => "約翰史密斯");

    #

    回覆
    0
  • 取消回覆