今天下午,我们的团队在使用 Jest 为我们的项目编写 React 测试库 (RTL) 测试时遇到了一个场景<Avatar />
成分。具体来说,我们想测试<img />
标签在加载失败时被从 DOM 中删除(onError
被触发)以匹配组件的预期最终视图。由于某种原因,使用fireEvent
on the <img />
DOM 元素对我们来说并不是很明显,我们在网上没有找到这个明确的解决方案,所以我们想要分享。正如您可以想象的那样,这适用于其他事件,例如onLoad
以及。有关 RTL 活动的更多信息 https://testing-library.com/docs/dom-testing-library/api-events.
it('should render with only initials when avatar image is NOT found', async() => {
const { container } = render(<Avatar {...defaultMocks} />);
const avatarImg = container.querySelector('img');
expect(avatarImg).toBeInTheDocument();
fireEvent(avatarImg, new Event('error'));
expect(avatarImg).not.toBeInTheDocument();
});
使用 testId 或 role 获取图像,然后使用 fireEvent 调用onLoad
or OnError
分别作用
const image = getByRole('img')
fireEvent.load(image);
对于 onError
fireEvent.error(image)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)