是否可以在Java集成測試中模擬緩慢的HTTP連接,以便我可以定義服務器在確認連接之前應等待多長時間?一個也支持JAX-WS web服務的解決方案將是完美的。模擬用於Java集成測試的慢HTTP連接?
背景: 我必須集成測試中心超時配置。配置器本身必須是技術獨立的。起初它支持JAX-WS webservices,因此將在請求上下文中設置com.sun.xml.ws.connect.timeout
屬性。
(我會盡力說服他們,這是JAX-WS的一部分,因此我們並不需要對其進行測試,但這個問題是我的備份計劃。)
PS:有其他問題一般會模擬一個緩慢的連接。這是不同的,因爲我不能在單元測試中使用外部工具,我必須能夠定義特定的連接時間。
我會推薦使用EasyMock。這並不像名稱所暗示的那麼容易,但它確實使得諸如http連接和數據庫的測試變得更加容易。 – JREN
@JREN:我知道EasyMock,但是我怎樣才能模擬一個慢速連接呢?連接是由JAX-WS創建的,所以很難注入模擬,不是嗎? –
我們通常在我們的類中創建一個名爲currentMillis的受保護方法,該方法返回System.currentTimeMillis(),以便我們可以覆蓋它以在我們的測試類中返回一個字段變量,以通過簡單地增加時間來模擬無論多長的時間跳過到變量。 – JREN