2017-03-01 93 views
0

我已經寫了調用REST服務嘲諷REST調用另外一個REST的服務

@RequestMapping(value = { "session" }, method = {RequestMethod.GET) 
    @ResponseBody 
    public String sesionGet(HttpServletRequest request, HttpServletResponse httpServletResponse) { 

      //call rest webservice  
      PostResponse postRequest = IncomeAccessUtils.postRequest(/*call web esrvice*/); 

我需要對代理做一個集成測試,但有時服務器REST代理在其外部Web服務部署在關閉。我可以嘲笑來自web服務調用的響應嗎?我正在使用spring-test-mvc和/或rest-assurance框架進行測試。

+1

也許http://wiremock.org/ – 2017-03-01 12:27:49

回答

1

是的有幾種方法可以在Java中執行此操作。

沒有太多的細節我會建議看看betamax - 它記錄任何網絡集成並保存它以便以後重播。您可以傳入您想要運行的實況或使用錄音。 (在一個項目中,我們在CI env中使用真實服務器運行,但在本地運行測試時使用受版本控制的記錄。)

SoapUI是另一種能夠模擬Web服務器的工具。如果您使用WSDL和/或SOAP,這可能是一個不錯的選擇。 (可憐你!:-))有很多這樣的替代品可供休息,但我的腦子裏並沒有新鮮的東西。

一個簡單的替代方案是運行pythons簡單的HTTP服務器:python -m SimpleHTTPServer 8888。它只是在它開始的目錄中提供。把你的迴應作爲文件,你很好。 (使用簡單的東西,但如果頭等重要不太好,也不擅長模擬失敗的調用。)

最後,如果你沒有打網絡電話的罰款,你可以在裏面嘲笑。如果您使用像Spring這樣的依賴注入框架,那麼使用後臺調用的模擬實現而不是真正的運行很容易。