如何解决Junit测试-java.lang.AssertionError:预期状态:<200>但之前是:<403>
我知道以前曾问过这类问题,我尝试了其中给出的许多答案,但都做得不好,所以有人可以帮我解决这个问题
它是我的Controller类
@RestController
@RequestMapping("/admin")
public class ABController {
@PutMapping("/train/{trainId}/{status}")
public ResponseEntity updateTrainstatus(@PathVariable String trainId,@PathVariable String status) {
return feignClient.updateTrainstatus(trainId,status);
}
}
它是我的测试控制器类
private final String UPDATE_TRAIN_URI = "/admin/train?trainId=train100&status=approved";
@Test
public void testJsonController() throws Exception {
String trainId = "train100";
String status = "approved";
MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.put(UPDATE_TRAIN_URI)
.contentType(MediaType.APPLICATION_JSON_VALUE).accept(MediaType.APPLICATION_JSON).characterEncoding("UTF-8");
this.mockMvc.perform(builder).andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.content().string("Train status"))
.andDo(MockMvcResultHandlers.print());
}
解决方法
您的项目可能已配置了spring安全性。比控制器需要一些身份验证-例如请求标头中的jwt令牌。在测试中,您的请求没有有效值,而不是您收到403禁止状态
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。