Shadcn/ui的选项卡在React Testing Library测试中没有切换内容

前端开发 2026-07-09

我想在一个React Jest测试中,基于代码控制来切换Shadcn/ui的 Tabs组件的选项卡,但选项卡的内容并未按预期更新。

在我的测试中,我模拟点击一个标签触发器:

fireEvent.click(screen.getByText("Next Tab"));

但当我断言相应的 <TabsContent /> 已渲染时,测试失败,提示无法找到内容。

在测试中,如何切换Shadcn的标签页,才能正确渲染相应的标签内容?

解决方案

Shadcn Tabs在底层使用Radix UI Tabs,它使用 onMouseDown 事件。因此,要正确触发标签切换,只需像下面这样使用 fireEvent.onMouseDown()

fireEvent.mouseDown(screen.getByRole("tab", { name: "Next Tab" }));
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章