【发布时间】:2021-01-13 11:39:28
【问题描述】:
我在网上搜索过,但我没有找到在反应测试库甚至开玩笑中模拟 window.close() 的方法。
const handleClose = () => {
window.opener.location.reload()
window.close()
}
<Button
data-test-id="close"
onClick={handleClose}
/>
如何实现按钮和 window.close() 和 window.opener.location.reload() 的 onclick 测试用例覆盖
我的测试用例如下
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();' 我收到一条错误消息,提示“接收到的值必须是模拟或间谍函数。接收到的值未定义”
对于期望(windowSpy.opener.location.relaod).toHaveBeenCalled(); // 它说 windowSpy.opener 没有定义。
请人帮忙!!!
【问题讨论】:
标签: reactjs unit-testing jestjs enzyme react-testing-library