溫馨提示×

springmvc單元測試如何寫

小億
102
2023-11-05 04:22:00
欄目: 編程語言

編寫Spring MVC的單元測試可以按照以下步驟進行:

  1. 導入相關的依賴:在項目的pom.xml文件中添加spring-testjunit依賴。

  2. 創(chuàng)建測試類:在測試目錄下創(chuàng)建一個測試類,命名方式為{ControllerName}Test,例如UserControllerTest。

  3. 添加注解:在測試類上使用@RunWith(SpringRunner.class)注解,告訴JUnit運行器使用Spring的上下文來運行測試。

  4. 注入依賴:使用@Autowired注解注入需要進行測試的Controller。

  5. 編寫測試方法:使用@Test注解標記要進行測試的方法,并編寫測試代碼??梢阅M請求和驗證返回結果。

以下是一個簡單示例:

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserControllerTest {

    @Autowired
    private UserController userController;

    @Test
    public void testGetUser() {
        // 模擬請求
        MockHttpServletRequest request = new MockHttpServletRequest();
        MockHttpServletResponse response = new MockHttpServletResponse();
        request.setMethod("GET");
        request.setRequestURI("/user/1");

        // 執(zhí)行方法
        ModelAndView mav = userController.getUser(1);

        // 驗證返回結果
        assertEquals("user", mav.getViewName());
        User user = (User) mav.getModel().get("user");
        assertEquals(1, user.getId());
    }

    @Test
    public void testAddUser() {
        // 模擬請求
        MockHttpServletRequest request = new MockHttpServletRequest();
        MockHttpServletResponse response = new MockHttpServletResponse();
        request.setMethod("POST");
        request.setRequestURI("/user");
        request.setParameter("name", "John");

        // 執(zhí)行方法
        ModelAndView mav = userController.addUser(request);

        // 驗證返回結果
        assertEquals("success", mav.getViewName());
    }
}

在這個示例中,我們分別測試了getUseraddUser方法。首先,我們使用MockHttpServletRequestMockHttpServletResponse來模擬請求和響應。然后,我們執(zhí)行方法并驗證返回結果。

0