gpt4 book ai didi

javascript - 如何使用 jest 测试 setTimeout 和 jquery 方法

转载 作者:行者123 更新时间:2023-12-01 01:16:49 25 4
gpt4 key购买 nike

我正在努力寻找如何使用 jest 测试此导出函数的解决方案。

export const scrollToError = () => {
setTimeout(() => {
const hasErrorElement = jQuery('.has-error');
if (!hasErrorElement.length) return;
jQuery('html,body').animate({
scrollTop: hasErrorElement.offset().top - 50,
}, 'slow');
}, 400);
};

我将其导入到我的测试文件中并尝试启动它:

import { scrollToError } from './utils';

describe('Utils', () => {
it('should scroll to error', () => {
const result = scrollToError();
expect(result).toBe(true); //added this just to force an error and got result as undefined
});
});

有人可以给我一些关于如何使用这些依赖项测试代码的提示吗?

最佳答案

scrollToError() 是异步函数,您不能调用它并期望结果立即出现。在测试之前,您需要等待一定的毫秒数(在您的情况下为 400 毫秒)。

Jest 中的异步代码测试略有不同: Testing Asynchronous Code 。您还可以take control over the timers或将其全部与 manual mocks 结合起来并覆盖 jQuery 本身。

关于javascript - 如何使用 jest 测试 setTimeout 和 jquery 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54678075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com