簡體   English   中英

如何使用玩笑模擬計時器?

[英]How do I mock timer using jest?

在調用時如何使用 Jest 模擬計時器context.getRemaining()和模擬sendMessage()

我希望在調用sendMessage()時將context.getRemaining()減少 9 秒。 sendMessage()將通過 while 循環多次調用。 它將以 60,000 毫秒開始。

exports.handler = async (context) => {
 while (true) {
    console.log(context.getRemaining());
    await sendMessage();
    if (context.getRemaining() < 13000) {
      break;
    }
 }

 return "FINISH";
}

您可以將jest.fn()用於context.getRemaining並為其提供多種功能:

sendMessage = jest.fn(async () => {});
await handler({
    getRemaining: jest.fn()
        .mockReturnValueOnce(20000)
        .mockReturnValueOnce(10000),
});
expect(sendMessage).toHaveBeenCalledTimes(2)

在編寫測試時,通常最好避免測試代碼中的復雜邏輯。 對於模擬,您可以提供明確的返回值。 否則你需要為你的測試代碼編寫測試,這很糟糕。

暫無
暫無

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

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