我想測試我的集成服務。因此,我需要一個休息服務,它接受對任何 url 的任何請求并以 HTTP 200 響應 - OK。(稍后,答案將是可配置的,基于 url。)如何使用 spring-boot 構建這樣的服務?我嘗試使用自定義HandlerInterceptor,但這只有在網址公開時才有效:@Configurationpublic class WebMvcConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new AllAccessInterceptor()); } private static class AllAccessInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle() { response.setStatus(HttpServletResponse.SC_OK); return true; } }}
2 回答

萬千封印
TA貢獻1891條經驗 獲得超3個贊
我認為 Spring Boot 整體上,特別是 Spring MVC 并不是為了簡單地做到這一點,所以任何解決方案總體來說都不會是簡單和好的。
所以,是的,攔截器在技術上可以是一個解決方案,但是接下來,您將如何配置實際答案(除了 200 狀態之外,還應該有一些數據發送回調用方部分)。要檢查的請求是一個 post 請求,您希望檢查一個非常具體的表單的正文。
根據您的評論
我想在本地啟動我的接受者服務。比起將其配置為我想在我的計算機上手動進行開發測試的服務的遠程服務。
考慮使用Wiremock作為模擬服務器。它的工作方式與mockito非常相似:您將能夠指定期望,例如“如果我使用以下參數調用遠程服務 - >返回該答案”等等。從技術上講,它回答了您的問題,因為您確實不需要為每個期望規范實現 enpoint,而這正是wiremock 所做的。
您甚至可以在測試期間使用 docker 中的測試容器運行它,這樣它將在測試開始時啟動并在測試結束時停止,但這是一個不同的主題。
添加回答
舉報
0/150
提交
取消