使用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类测试的内容不知道朋友都看明白了吗?对此还有疑问的可以直接来网站留言。更多有趣的技术文章,尽在爱站技术频道网站。

上一篇:Java之TreeMap的初始大小介绍

下一篇:读取文件后怎么存储在对象数组列表中

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载