簡體   English   中英

MockMVC - 如何在沒有 mockMvc 進行實際發布的情況下測試發布到端點?

[英]MockMVC - How to test post to an endpoint without having mockMvc make the actual post?

我有一個要測試的 REST 端點。 通過 POST 請求命中此端點會上傳遠程 git 存儲庫中的文件。 我正在嘗試使用 mockMvc 測試對此端點的 POST 調用(我只想看到返回狀態“isOk()”)——我不希望端點實際被我的 jUnit 命中,因為這會導致不必要的文件上傳到倉庫,稍后需要清理。

我的問題是,mockMvc 正在對端點進行實際的 POST 調用嗎? 什么? 我還以為這都被嘲笑了?! 是否可以讓 mockMvc 返回 isOk() 而無需實際調用端點並將文件推送到我的遠程倉庫?

Mock MVC只是一個工具,可以用來調用標有@GetMapping@PostMapping等的方法。

控制器中的post方法實際上是您需要測試的方法,並且不應對其進行模擬,這就是為什么要使用真正的端點了。

我建議您以post方法將只委派向服務發送請求的工作的方式重組控制器。 這樣,您的控制器將只有一行代碼(服務調用),並且同時您將能夠模擬該服務,以便它不會到達真正的端點。

您也可以使用@MockBean 來模擬該服務,這樣它就不會進行任何實際調用,希望這對將來遇到同樣問題的任何人有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM