我正在尝试测试我的锚标签。一旦我点击它,我想看看window.location.href
是否符合我的期望。
我已经尝试渲染该锚标签、单击它,然后测试window.location.href
:
test('should navigate to ... when link is clicked', () => {
const { getByText } = render(<a href="https://test.com">Click Me</a>);
const link = getByText('Click Me');
fireEvent.click(link);
expect(window.location.href).toBe("https://www.test.com/");
});
我希望测试能够通过,但实际上,window.location.href
只是 "http://localhost/"
,这意味着无论什么原因它都没有被更新。我甚至尝试用 await wait
包装我的期望,但也没有起作用。我找不到关于使用 react-testing-library
测试锚点的信息。也许有比我现在做的更好的方法来测试锚点。♂️
TypeError: getByText(...).closest is not a function
的错误信息,有什么想法吗? - S..getByText
在你的情况下没有找到任何内容。 - Gio Polvaraclosest('a')
进行搜索,它与 react-testing-library 的精神相比略逊一筹("测试越像软件的使用方式,您就越能获得信心")。在我看来,getByRole('link')
更符合库的精神,因为不需要进行这样的搜索。即使这个库本身的精神值得商榷。请注意,我没有打负面评分 - 只是说一下... - quickshiftin<a href="some-url">下一步</a>
,我尝试了expect(screen.getByText('下一步').closest('a')).toHaveAttribute('href', "some-url")
。但是出现了这个错误:期望该元素具有属性: href="some-url" 收到的是: null
- Rahul Sagore