Rest修改和删除,cookie和Header

修改和删除测试用例:

    @Test
    public void whenUpdateSuccess() throws Exception {
        String content = "{\"id\":1,\"name\":\"战争与和平\",\"content\":null, \"publishDate\":\"2017-05-05\"}";
        mockMvc.perform(put("/book/1").content(content).contentType(MediaType.APPLICATION_JSON))
            .andExpect(status().isOk())
            .andExpect(jsonPath("$.id").value("1"));
    }
    
    @Test
    public void whenDeleteSuccess() throws Exception {
        mockMvc.perform(delete("/book/1").contentType(MediaType.APPLICATION_JSON))
            .andExpect(status().isOk());
    }

控制器

    @PutMapping("/{id}")
    public BookInfo update(@Valid @RequestBody BookInfo info, BindingResult result) {
//        if(result.hasErrors()) {
//            result.getAllErrors().stream().forEach(error -> System.out.println(error.getDefaultMessage()));
//        }
//        System.out.println("id is "+info.getId());
//        System.out.println("name is "+info.getName());
//        System.out.println("content is "+info.getContent());
//        System.out.println("publishDate is "+info.getPublishDate());
        
        return bookService.update(info);
    }
    
    @DeleteMapping("/{id}") @PathVariable是spring3.0的一个新功能:接收请求路径中占位符的值 id与请求的id保持一致
    public void delete(@PathVariable Long id) {
        System.out.println(id);
        
        bookService.delete(id);
    }

 

cookie和Header 测试用例

@Test
    public void whenCookieOrHeaderExists() throws Exception {
        mockMvc.perform(get("/book/1")
                .cookie(new Cookie("token", "123456"))
                .header("auth", "xxxxxxxxxx")
                .contentType(MediaType.APPLICATION_JSON))
                .andExpect(status().isOk());
    }

控制器

后端使用@CookieValue String token

@RequestHeader String auth

你可能感兴趣的:(spring,boot)