1. package com.cjy.user;
    2. import com.alibaba.fastjson.JSONObject;
    3. import com.cjy.interceptor.Page;
    4. import org.junit.Before;
    5. import org.junit.Test;
    6. import org.junit.runner.RunWith;
    7. import org.springframework.beans.factory.annotation.Autowired;
    8. import org.springframework.boot.test.context.SpringBootTest;
    9. import org.springframework.http.MediaType;
    10. import org.springframework.test.context.junit4.SpringRunner;
    11. import org.springframework.test.web.servlet.MockMvc;
    12. import org.springframework.test.web.servlet.MvcResult;
    13. import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
    14. import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
    15. import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
    16. import org.springframework.test.web.servlet.setup.MockMvcBuilders;
    17. import org.springframework.web.context.WebApplicationContext;
    18. /**
    19. * @author Cheng JiYe
    20. * @description:
    21. * @date 2020/8/5 10:57
    22. */
    23. @RunWith(SpringRunner.class)
    24. @SpringBootTest
    25. public class UserControllerTest {
    26. // 注入web环境的ApplicationContext容器
    27. @Autowired
    28. private WebApplicationContext context;
    29. /**
    30. * 模拟mvc测试对象
    31. */
    32. private MockMvc mockMvc;
    33. /**
    34. * 所有测试方法执行之前执行该方法
    35. */
    36. @Before // 这个注解的作用,在每个方法之前都会执行一遍
    37. public void before() throws Exception {
    38. //获取mockmvc对象实例
    39. mockMvc = MockMvcBuilders.webAppContextSetup(this.context).build();
    40. }
    41. @Test
    42. public void getInfo() throws Exception {
    43. MvcResult mvcResult = mockMvc.perform(
    44. MockMvcRequestBuilders.get("/user/getInfo")
    45. .param("username", "Jack")
    46. .param("password", "Jack001"))
    47. .andExpect(MockMvcResultMatchers.status().isOk())
    48. .andDo(MockMvcResultHandlers.print()).andReturn();
    49. System.out.println("输出 " + mvcResult.getResponse().getContentAsString());
    50. }
    51. @Test
    52. public void list2() throws Exception {
    53. MvcResult mvcResult = mockMvc.perform(
    54. MockMvcRequestBuilders.post("/user/list22")
    55. .param("name", "张三"))
    56. .andExpect(MockMvcResultMatchers.status().isOk())
    57. .andDo(MockMvcResultHandlers.print()).andReturn();
    58. System.out.println("输出 " + mvcResult.getResponse().getContentAsString());
    59. }
    60. /**
    61. * 传递单个参数
    62. *
    63. * @throws Exception
    64. */
    65. @Test
    66. public void list4() throws Exception {
    67. MvcResult mvcResult = mockMvc.perform(
    68. MockMvcRequestBuilders.post("/user/list4")
    69. .param("name", "张三"))
    70. .andExpect(MockMvcResultMatchers.status().isOk())
    71. .andDo(MockMvcResultHandlers.print()).andReturn();
    72. System.out.println("输出 " + mvcResult.getResponse().getContentAsString());
    73. }
    74. /**
    75. * 测试传递 @RequestBody ,传递对象
    76. *
    77. * @throws Exception
    78. */
    79. @Test
    80. public void list5() throws Exception {
    81. Page page = new Page();
    82. page.setName("张三");
    83. String paraJson = JSONObject.toJSONString(page);
    84. MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.post("/user/list4").contentType(MediaType.APPLICATION_JSON).content(paraJson))
    85. .andExpect(MockMvcResultMatchers.status().isOk())
    86. .andDo(MockMvcResultHandlers.print()).andReturn();
    87. System.out.println("输出 " + mvcResult.getResponse().getContentAsString());
    88. }
    89. }