import { describe, it, expect } from 'vitest'; import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { TestWrapper } from '../../__test_utils__/test-render'; // 假设有一个简单的Button组件 function Button({ onClick, children }: { onClick: () => void; children: React.ReactNode }) { return ( ); } describe('Button Component Integration Tests', () => { it('应该渲染按钮并显示正确的文本', () => { render( ); const button = screen.getByTestId('test-button'); expect(button).toBeInTheDocument(); expect(button).toHaveTextContent('Click Me'); }); it('应该在点击时调用onClick处理函数', async () => { const user = userEvent.setup(); const handleClick = vi.fn(); render( ); const button = screen.getByTestId('test-button'); await user.click(button); expect(handleClick).toHaveBeenCalledTimes(1); }); it('应该具有正确的样式类', () => { render( ); const button = screen.getByTestId('test-button'); expect(button).toHaveClass('bg-blue-500'); expect(button).toHaveClass('text-white'); expect(button).toHaveClass('px-4'); expect(button).toHaveClass('py-2'); expect(button).toHaveClass('rounded'); }); });