簡體   English   中英

即使在被調用后也期望被調用失敗

[英]Expect to have been called failing even after being called

我在 Jest 中有一個測試用例代碼。

let ticketsTransformer = new TicketTransformer();
    ticketsTransformer.transform = jest.fn(() => results);
expect(ticketsTransformer.transform).toHaveBeenCalled();

const synchronizer = new Synchronizer(
        client,
        ticketsTransformer,
        jest.mock(),
        persister,
        jest.mock()
    );
synchronizer.sync("1999-01-01");
    expect(ticketsTransformer.transform).toHaveBeenCalled();

sync方法中,我嘗試使用console.log(this.ticketTransformer.transform()) ,它給了我存儲在results變量中的相同結果,這意味着該方法正在按預期調用。 但我不確定為什么我的測試用例仍然失敗並抱怨

   Expected number of calls: >= 1
   Received number of calls:    0

      72 |  );
      73 |  synchronizer.sync("1999-01-01");
    > 74 |  expect(ticketsTransformer.transform).toHaveBeenCalled();
         |                                       ^
      75 | });
      76 |

所以問題是因為它沒有等待 function 在它自己之前執行它試圖做期望。

因此,為了等待,您可以使用 async 和 await,還可以檢查 promise 調用,您可以使用斷言

來自官方文檔的示例片段

it('works with async/await', async () => {
  expect.assertions(1);
  const data = await user.getUserName(4);
  expect(data).toEqual('Mark');
});

暫無
暫無

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

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