既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
@RequestMapping(value = “/users”) // 通过这里配置使下面的映射都在/users下
public class UserController {
// 创建线程安全的Map,模拟users信息的存储
static Map<Long, User> users = Collections.synchronizedMap(new HashMap<Long, User>());
/**
-
处理"/users/"的GET请求,用来获取用户列表
-
@return
*/
@GetMapping(“/”)
public List getUserList() {
// 还可以通过@RequestParam从页面中传递参数来进行查询条件或者翻页信息的传递
List r = new ArrayList(users.values());
return r;
}
/**
-
处理"/users/"的POST请求,用来创建User
-
@param user
-
@return
*/
@PostMapping(“/”)
public String postUser(@RequestBody User user) {
// @RequestBody注解用来绑定通过http请求中application/json类型上传的数据
users.put(user.getId(), user);
return “success”;
}
/**
-
处理"/users/{id}"的GET请求,用来获取url中id值的User信息
-
@param id
-
@return
*/
@GetMapping(“/{id}”)
public User getUser(@PathVariable Long id) {
// url中的id可通过@PathVariable绑定到函数的参数中
return users.get(id);
}
/**
-
处理"/users/{id}"的PUT请求,用来更新User信息
-
@param id
-
@param user
-
@return
*/
@PutMapping(“/{id}”)
public String putUser(@PathVariable Long id, @RequestBody User user) {
User u = users.get(id);
u.setName(user.getName());
u.setAge(user.getAge());
users.put(id, u);
return “success”;
}
/**
-
处理"/users/{id}"的DELETE请求,用来删除User
-
@param id
-
@return
*/
@DeleteMapping(“/{id}”)
public String deleteUser(@PathVariable Long id) {
users.remove(id);
return “success”;
}
}
这里相较1.x版本教程中,用更细化的
@GetMapping
、@PostMapping
等系列注解替换了以前的@RequestMaping
注解;另外,还使用@RequestBody
替换了@ModelAttribute
的参数绑定。
编写单元测试
下面针对该Controller编写测试用例验证正确性,具体如下。当然也可以通过浏览器插件等进行请求提交验证。
@RunWith(SpringRunner.class)
@SpringBootTest
public class Chapter21ApplicationTests {
private MockMvc mvc;
@Before
public void setUp() {
mvc = MockMvcBuilders.standaloneSetup(new UserController()).build();
}
@Test
public void testUserController() throws Exception {
// 测试UserController
RequestBuilder request;
// 1、get查一下user列表,应该为空
request = get(“/users/”);
mvc.perform(request)
.andExpect(status().isOk())
.andExpect(content().string(equalTo(“[]”)));
// 2、post提交一个user
request = post(“/users/”)
.contentType(MediaType.APPLICATION_JSON)
.content(“{“id”:1,“name”:“测试大师”,“age”:20}”);
mvc.perform(request)
.andExpect(content().string(equalTo(“success”)));
// 3、get获取user列表,应该有刚才插入的数据
request = get(“/users/”);
mvc.perform(request)
.andExpect(status().isOk())
.andExpect(content().string(equalTo(“[{“id”:1,“name”:“测试大师”,“age”:20}]”)));
// 4、put修改id为1的user
request = put(“/users/1”)
.contentType(MediaType.APPLICATION_JSON)
.content(“{“name”:“测试终极大师”,“age”:30}”);
mvc.perform(request)
.andExpect(content().string(equalTo(“success”)));
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
…(img-vPCPHcPH-1715553911304)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新