我有一个要测试的REST端点。通过POST请求达到此端点会在远程git repo中上传文件。我正在尝试使用mockMvc测试对此端点的POST调用(我只想看到一个返回状态“ isOk()”)-我不希望该端点实际上被我的jUnit击中,因为这将导致不必要的文件可以上传到仓库中,以后需要清理。
我的问题是,mockMvc正在对端点进行实际的POST调用! !我以为这都是被嘲笑的吗?是否可以在不进行对端点的实际调用并将文件推送到我的远程仓库的情况下,使mockMvc返回isOk()?
答案 0 :(得分:1)
模拟MVC只是一种工具,可以用来调用标有@GetMapping
,@PostMapping
等的方法。
控制器中的post方法实际上是您需要测试的方法,并且不应对其进行模拟,这就是为什么要点击真正的端点了。
我建议您以post方法将仅委派向服务发送请求的工作的方式重组控制器。这样,您的控制器将只有一行代码(服务调用),并且同时您将能够模拟该服务,以便它不会到达真正的端点。