如何用Mockito编写SchedulerResource中createScheduler方法的空入参单元测试?
覆盖createScheduler方法else分支的单元测试实现方案
嘿,我来帮你搞定这个else分支的单元测试!你已经写好了入参非空的成功用例,现在要覆盖schedulerDTO为null的场景其实很简单,核心就是模拟一个不带有效请求体的POST请求,然后验证对应的响应结果。
具体测试代码实现
@Test public void createScheduler_NullDto_Failure() throws Exception { // 发送POST请求,传入null作为请求体,触发schedulerDTO为null的分支 mockMvc.perform(post("/linear/api/1.0/schedules") .contentType(MediaType.APPLICATION_JSON) .content((String) null)) // 验证返回的HTTP状态码为NOT_FOUND .andExpect(status().isNotFound()) // 验证响应体中的提示消息符合预期 .andExpect(jsonPath("$.message", is("Not Create!"))); }
关键注意点
- 无需mock服务层方法:因为
else分支不会调用schedulerService.saveScheduler(),所以这一步可以直接省略,避免不必要的配置。 - 请求体的处理:除了传入
null,你也可以传入字符串"null",两种方式都能让Spring MVC将@RequestBody注解的参数解析为null,从而进入目标分支。 - 响应验证:要确保验证的HTTP状态码与业务逻辑中定义的
HttpStatus.NOT_FOUND对应,同时响应体的message字段和代码里的提示文本完全一致。
内容的提问来源于stack exchange,提问作者Cang Lu
相关产品推荐
相关产品推荐

