編寫Spring MVC的單元測試可以按照以下步驟進行:
導入相關的依賴:在項目的pom.xml
文件中添加spring-test
和junit
依賴。
創建測試類:在測試目錄下創建一個測試類,命名方式為{ControllerName}Test
,例如UserControllerTest
。
添加注解:在測試類上使用@RunWith(SpringRunner.class)
注解,告訴JUnit運行器使用Spring的上下文來運行測試。
注入依賴:使用@Autowired
注解注入需要進行測試的Controller。
編寫測試方法:使用@Test
注解標記要進行測試的方法,并編寫測試代碼。可以模擬請求和驗證返回結果。
以下是一個簡單示例:
@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");
// 執行方法
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");
// 執行方法
ModelAndView mav = userController.addUser(request);
// 驗證返回結果
assertEquals("success", mav.getViewName());
}
}
在這個示例中,我們分別測試了getUser
和addUser
方法。首先,我們使用MockHttpServletRequest
和MockHttpServletResponse
來模擬請求和響應。然后,我們執行方法并驗證返回結果。