You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在测试中获取Shadcn Button组件的variant属性?

测试Shadcn Button组件的disabled variant方法

针对你的测试场景,常用的几种验证方式如下:

  • 检查按钮是否处于禁用状态
    这是最贴合用户实际体验的测试逻辑。如果你的disabled variant会给按钮添加原生disabled属性,直接用测试库的断言方法即可:

    it('renders disabled button', () => {
      render(<Button variant="disabled" />);
      const button = screen.getByRole("button");
      expect(button).toBeDisabled();
    })
    
  • 验证对应的样式类名
    Shadcn的Button基于Tailwind CSS构建,不同variant会绑定特定样式类。比如disabled variant通常会带有opacity-50、cursor-not-allowed这类类(具体类名取决于你项目中Button组件的自定义配置),可以通过检查类名来验证:

    it('renders disabled button', () => {
      render(<Button variant="disabled" />);
      const button = screen.getByRole("button");
      // 替换成你项目中disabled variant对应的实际类名
      expect(button).toHaveClass('opacity-50', 'cursor-not-allowed');
    })
    
  • 检查组件暴露的自定义属性(不推荐)
    不建议直接测试组件内部的props传递(属于实现细节),但如果确实需要,可以让Button组件把variant作为自定义属性暴露出来(比如data-variant),再进行断言:

    it('renders disabled button', () => {
      render(<Button variant="disabled" data-variant="disabled" />);
      const button = screen.getByRole("button");
      expect(button).toHaveAttribute('data-variant', 'disabled');
    })
    

内容的提问来源于stack exchange,提问作者Jasperan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 10:47:03