阅读量:0
编写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
来模拟请求和响应。然后,我们执行方法并验证返回结果。