add jwtUtilTest

Change-Id: Ia6635b05f605a88788c03a8eff24ee6cbd59fcd3
diff --git a/src/test/java/com/example/g8backend/util/JwtUtilTest.java b/src/test/java/com/example/g8backend/util/JwtUtilTest.java
new file mode 100644
index 0000000..860acec
--- /dev/null
+++ b/src/test/java/com/example/g8backend/util/JwtUtilTest.java
@@ -0,0 +1,49 @@
+package com.example.g8backend.util;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.mockito.InjectMocks;
+import org.mockito.MockitoAnnotations;
+import static org.junit.jupiter.api.Assertions.*;
+import io.jsonwebtoken.security.Keys;
+import javax.crypto.SecretKey;
+import java.security.SecureRandom;
+
+class JwtUtilTest {
+
+    @InjectMocks
+    private JwtUtil jwtUtil;
+
+    @BeforeEach
+    void setUp() {
+        MockitoAnnotations.openMocks(this);
+        byte[] keyBytes = new byte[32];
+        new SecureRandom().nextBytes(keyBytes);
+        SecretKey secretKey = Keys.hmacShaKeyFor(keyBytes);
+        jwtUtil = new JwtUtil(secretKey);
+    }
+
+    @Test
+    void testGenerateToken() {
+        String username = "testUser";
+        String token = jwtUtil.generateToken(username);
+        assertNotNull(token);
+    }
+
+    @Test
+    void testValidateTokenAndGetUsername() {
+        String username = "testUser";
+        String token = jwtUtil.generateToken(username);
+        String extractedUsername = jwtUtil.validateTokenAndGetUsername(token);
+        assertEquals(username, extractedUsername);
+    }
+
+    @Test
+    void testValidateTokenAndGetUsername_InvalidToken() {
+        String invalidToken = "invalid.token.here";
+        Exception exception = assertThrows(RuntimeException.class, () ->
+                jwtUtil.validateTokenAndGetUsername(invalidToken)
+        );
+        assertTrue(exception.getMessage().contains("Token无效或过期"));
+    }
+}