2013-10-17 35 views
0

我有一個服務,有一個方法,使用apache httpclient休息電話。我想使用junit來測試呼叫,但我不想嘲笑呼叫但嘲笑服務器,它正在呼叫JUnit:嘲弄一個http服務器

我的問題是,是否有可能使用類似mockwebserver的模擬出服務器所以如果你向一個特定的URL發出請求,這將從服務中獲取(而不是嘲笑服務),而不是去真正的服務器?

+1

你可以使用Jetty或'com.sun.net.httpserver.HttpServer'。然而,在我看來,這不會提高測試的質量(與使用模擬相比),但可能會影響其可讀性和執行時間(更不用說諸如確保測試中使用的端口尚未使用等問題) – kryger

+0

所以你會建議嘲笑服務並嘲笑服務器的調用? – theBigOzzy

+0

是的,這會使你的測試成爲一個純粹的單元測試(不涉及合作者),但最終由你決定哪種方法更好,「感覺」是正確的。 – kryger

回答

0

HttpClient是一個接口,所以你可以在你的測試中返回一個模擬。

0

嘗試Jadler(http://jadler.net),一個用於創建存根/模擬http服務器的開源庫。它應該爲您提供您需要的一切(我是其開發人員之一)。