Spring Boot MockMvc通过Body传Json字符串
在实践的过程中我们通常会传递一个json字符串,然后通过Spring Boot中的@RequestBody将字符串解析为对应的对象。
那么,此时如果使用MockMvc来模拟请求并进行单元测试,该如何处理呢?下面给大家演示一下具体的实例。
Controller中方法的定义如下:
@RestController public class JsonController { @PostMapping("/addUser") public void addUser(@RequestBody User user) { System.out.println("userNo: " + user.getUserNo()); System.out.println("username: " + user.getUsername()); System.out.println("age: " + user.getAge()); System.out.println("createDate: " + user.getCreateDate()); } }
对应的单元测试类代码如下:
@SpringBootTest @AutoConfigureMockMvc class JsonControllerTest { @Autowired private MockMvc mockMvc; @Test void addUser() throws Exception { String user = "{\"userNo\":\"1000\",\"username\":\"Tom\",\"age\":18,\"createDate\":\"2019-12-31T02:51:52" + ".326+0000\"}"; mockMvc.perform( MockMvcRequestBuilders.post("/addUser").content(user).contentType(MediaType.APPLICATION_JSON) ); } }
在上述代码中将json字符串放置于content中,同时需要指定content中字符串的类型为Json。然后执行单元测试即可完成测试。需要注意的是此处使用的是Junit5。
同时在业务代码中通过@RequestBody来接收json字符串并赋值转换绑定到具体的对象上。
Spring技术视频
CSDN学院:《Spring Boot 视频教程全家桶》
关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台
除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接
本文链接:https://choupangxia.com/2019/12/31/spring-boot-mockmvc-body-json/