diff --git a/src/test/java/com/cardiff/client_project/SuperAdminControllerTest.java b/src/test/java/com/cardiff/client_project/SuperAdminControllerTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..c173f9d8e76571d6e34666518a1e1cc7089191a3
--- /dev/null
+++ b/src/test/java/com/cardiff/client_project/SuperAdminControllerTest.java
@@ -0,0 +1,106 @@
+package com.cardiff.client_project;
+
+import com.cardiff.client_project.pojo.dto.SelectDTO;
+import com.cardiff.client_project.pojo.dto.SignUserDTO;
+import com.cardiff.client_project.service.SuperAdminService;
+import com.cardiff.client_project.utils.Result;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.junit.jupiter.api.Test;
+import org.mockito.ArgumentMatchers;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.http.MediaType;
+import org.springframework.test.web.servlet.MockMvc;
+
+import java.util.Arrays;
+import java.util.List;
+
+import static org.mockito.Mockito.*;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+@SpringBootTest
+@AutoConfigureMockMvc
+public class SuperAdminControllerTest {
+
+    @Autowired
+    private MockMvc mockMvc;
+
+    @MockBean
+    private SuperAdminService superAdminService;
+
+    @Test
+    void testSignIn() throws Exception {
+        // Construct test data
+        SignUserDTO signDTO = new SignUserDTO();
+        signDTO.setName("testUser");
+        signDTO.setPassword("password123");
+
+        Result expectedResult = Result.success("User registered successfully");
+        when(superAdminService.insertUserInform(any(SignUserDTO.class))).thenReturn(expectedResult);
+
+        // post
+        mockMvc.perform(post("/superAdmin/sign")
+                        .contentType(MediaType.APPLICATION_JSON)
+                        .content(new ObjectMapper().writeValueAsString(signDTO)))
+                    .andExpect(status().isOk())
+                    .andExpect(jsonPath("$.msg").value("User registered successfully"));
+
+        // Verify that the service layer is invoked
+        verify(superAdminService, times(1)).insertUserInform(any(SignUserDTO.class));
+    }
+
+    @Test
+    void testDeleteHospitalById() throws Exception {
+        List<Integer> ids = Arrays.asList(1, 2, 3);
+        Result mockResult = Result.success("successfully");
+        when(superAdminService.deleteById(eq(ids), eq("hospital"))).thenReturn(mockResult);
+
+        mockMvc.perform(delete("/superAdmin/deleteHospitalById")
+                        .contentType(MediaType.APPLICATION_JSON)
+                        .content(new ObjectMapper().writeValueAsString(ids)))
+                .andExpect(status().isOk())
+                .andExpect(jsonPath("$.code").value(1))
+                .andExpect(jsonPath("$.msg").value("successfully"));
+
+        verify(superAdminService, times(1)).deleteById(eq(ids), eq("hospital"));
+    }
+
+    @Test
+    void testSelectByItem() throws Exception {
+        SelectDTO selectDTO = new SelectDTO();
+        selectDTO.setName("testQuery");
+        Result mockResult = Result.success("Query successful");
+        when(superAdminService.selectByItem(any(SelectDTO.class))).thenReturn(mockResult);
+
+        mockMvc.perform(post("/superAdmin/select")
+                        .contentType(MediaType.APPLICATION_JSON)
+                        .content(new ObjectMapper().writeValueAsString(selectDTO)))
+                .andExpect(status().isOk())
+                .andExpect(jsonPath("$.code").value(1))
+                .andExpect(jsonPath("$.msg").value("Query successful"));
+
+        verify(superAdminService, times(1)).selectByItem(any(SelectDTO.class));
+    }
+
+    @Test
+    void testUpdateById() throws Exception {
+        SelectDTO selectDTO = new SelectDTO();
+        selectDTO.setId(1);
+        selectDTO.setName("newData");
+        Result mockResult = Result.success("Update successful");
+        when(superAdminService.update(any(SelectDTO.class))).thenReturn(mockResult);
+
+        mockMvc.perform(put("/superAdmin/update")
+                        .contentType(MediaType.APPLICATION_JSON)
+                        .content(new ObjectMapper().writeValueAsString(selectDTO)))
+                .andExpect(status().isOk())
+                .andExpect(jsonPath("$.code").value(1))
+                .andExpect(jsonPath("$.msg").value("Update successful"));
+
+        verify(superAdminService, times(1)).update(any(SelectDTO.class));
+    }
+}