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