Button.test.tsx 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import React from 'react'
  2. import { describe, expect, test } from '@jest/globals'
  3. import { render, screen, fireEvent } from '@testing-library/react'
  4. import { Button } from '@tarojs/components'
  5. describe('Button 组件测试', () => {
  6. test('应该正确渲染按钮', () => {
  7. render(<Button>测试按钮</Button>)
  8. const button = screen.getByRole('button')
  9. expect(button).toBeInTheDocument()
  10. expect(button).toHaveTextContent('测试按钮')
  11. })
  12. test('应该响应点击事件', () => {
  13. const handleClick = jest.fn()
  14. render(<Button onClick={handleClick}>可点击按钮</Button>)
  15. const button = screen.getByRole('button')
  16. fireEvent.click(button)
  17. expect(handleClick).toHaveBeenCalledTimes(1)
  18. })
  19. test('应该禁用按钮', () => {
  20. render(<Button disabled>禁用按钮</Button>)
  21. const button = screen.getByRole('button')
  22. expect(button).toBeDisabled()
  23. })
  24. test('应该应用自定义类名', () => {
  25. render(<Button className="custom-class">自定义按钮</Button>)
  26. const button = screen.getByRole('button')
  27. expect(button).toHaveClass('custom-class')
  28. })
  29. })