### Question:
ArticleController { @PostMapping public Article articleSave(@RequestBody ArticleSave request) { return articleService.save(request, SelectionHandler.getSelections()); }  @IdProvider //声明成IdProvider，通过外键关联的就是通过此接口获取到实体的详情信息的 @GetMapping("/{articleId:\\d+}") Article articleById(@PathVariable int articleId); @IdsProvider //批量查询接口，引擎检测到可以合并请求时，会合并多个id，调用这个接口。默认分隔符是半角逗号，也可以配置当前注解属性进行修改。批量接口，返回不需要按ids的顺序返回，而是交由引擎处理 @GetMapping List<Article> articleByIds(@RequestParam String ids); @GraphqlSelection("list") //如果返回的字段里包裹了多层，可以通过此声明指定selection的前缀 @GetMapping("/search") //所有的Query都必须是Get请求，否则会变成Mutation！ BasePagedList<Article> articleSearch(ArticleQuery query); @PostMapping //非Get方法，会生成到GraphQL Schema的Mutation内，如果有需要写操作后也可以返回需要的字段 Article articleSave(@RequestBody ArticleSave request); @DeleteMapping("/{id:\\d+}") //非Get方法，会生成到GraphQL Schema的Mutation内，如果有需要写操作后也可以返回需要的字段 Article articleDelete(@PathVariable int id);  }### Answer:
@Test public void articleSave() throws Exception { ArticleSave request = new ArticleSave(); String title = "测试新增文章"; request.setTitle(title); request.setContent("新的文章内容"); ResultActions result = this.mockMvc.perform( post("/api/article") .contentType(MediaType.APPLICATION_JSON_UTF8) .characterEncoding(UTF_8) .content(objectMapper.writeValueAsString(request)) ) .andDo(print()) .andExpect(status().isOk()) .andExpect(jsonPath("$.title", is(title))); String content = result.andReturn().getResponse().getContentAsString(); System.out.println(content); }