使用Mockito如何进行controller类测试
来源:爱站网时间:2022-06-14编辑:网友分享
本篇文章主要给大家讲述下使用Mockito如何进行controller类测试的内容,如果你感兴趣的话可以看看爱站技术频道小编所整理的资料,或多或少能帮助到你解决问题。
问题描述
我正在使用Mockito在controller类中测试我的获取映射之一。这是我的get方法
@PostMapping(value = "insert/carbooking")
public ResponseEntity reservation(@Valid BookingRequest bookRequest) {
return validate(bookRequest, carService::booking);
}
[我班级的顶部是我的验证者
@Autowired
private ReservationValidator reservationValidator;
@InitBinder("bookRequest")
protected void bookRequestBinder(WebDataBinder binder) {
binder.addValidators(reservationValidator);
}
这里是Mockito测试方法。由于sin的格式错误,结果应该返回了错误的请求。
@Test
public void reservationTest2() throws Exception {
mockMvc.perform(MockMvcRequestBuilders
.post("insert/carbooking")
.param("license", "data")
.param("SIN", "202007191517")
.accept(MediaType.MULTIPART_FORM_DATA))
.andExpect(status().isBadRequest());
}
但是测试失败
java.lang.AssertionError: Status expected: but was:
Expected :400
Actual :200
Mockito是否可以接收“ reservationValidator”?
思路:
由于@ chrylis-onstrike-我已经解决了所有问题。对于源代码,我只需要删除@Before
addholders设置方法,并将其替换为@Autowired
上的注释Mockmvc mockmvc
和服务类上的@MockBean
注释,即可将客户端类放在应用程序上下文中。我不能给他的答案加上对号,太可惜了,因为他没有发表我的问题的答案,而是发表评论。
使用Mockito如何进行controller类测试的内容不知道朋友都看明白了吗?对此还有疑问的可以直接来网站留言。更多有趣的技术文章,尽在爱站技术频道网站。