[英]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.