diff --git a/src/components/Auth/Login.test.jsx b/src/components/Auth/Login.test.jsx
new file mode 100644
index 0000000..6da7659
--- /dev/null
+++ b/src/components/Auth/Login.test.jsx
@@ -0,0 +1,28 @@
+import React from 'react';
+import { render, screen, fireEvent } from '@testing-library/react';
+import Login from './Login';
+
+describe('Login component', () => {
+  test('renders login form', () => {
+    const onRegisterClick = jest.fn();
+    render(<Login onRegisterClick={onRegisterClick} />);
+
+    const usernameInput = screen.getByPlaceholderText('请输入用户名');
+    const passwordInput = screen.getByPlaceholderText('请输入密码');
+    const loginButton = screen.getByText('登录');
+
+    expect(usernameInput).toBeInTheDocument();
+    expect(passwordInput).toBeInTheDocument();
+    expect(loginButton).toBeInTheDocument();
+  });
+
+  test('calls onRegisterClick when "点击注册" is clicked', () => {
+    const onRegisterClick = jest.fn();
+    render(<Login onRegisterClick={onRegisterClick} />);
+
+    const registerButton = screen.getByText('点击注册');
+    fireEvent.click(registerButton);
+
+    expect(onRegisterClick).toHaveBeenCalled();
+  });
+});
\ No newline at end of file
