gpt4 book ai didi

reactjs - 在 React-testing-library 中模拟 window.close()

转载 作者:行者123 更新时间:2023-12-05 04:58:16 27 4
gpt4 key购买 nike

我在网上搜索过,但没有找到模拟 window.close() 的方法在 React 测试库中甚至开 Jest 。

const handleClose = () => {
window.opener.location.reload()
window.close()
}

<Button
data-test-id="close"
onClick={handleClose}
/>

如何实现 onclick 的测试用例覆盖率按钮和window.close()window.opener.location.reload()被覆盖

我的测试用例如下:

const wrapper = render( <CloseButton />);
const windowSpy = jest.spyOn(global, 'window', 'get');

const { queryByTestId } = wrapper;
fireEvent.click(queryByTestId('close');
expect(windowSpy.opener.location.relaod).toHaveBeenCalled();
expect(windowSpy.close).toHaveBeenCalled();

最后一行代码

expect(windowSpy.close).toHaveBeenCalled();

我收到一条错误消息

received value must be a mock or spy function. received has valueundefined

为了

expect(windowSpy.opener.location.relaod).toHaveBeenCalled();

它说:

windowSpy.opener is not defined.

最佳答案

你只是在模拟窗口,但你没有提供任何实现。

这应该有帮助:

windowSpy.mockImplementation(() => ({
close: jest.fn(),
opener: {
location: {
reload: jest.fn(),
}
}
}));

关于reactjs - 在 React-testing-library 中模拟 window.close(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64092855/

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