2012-05-20 76 views
0

我正在基於Apache sling的環境中工作。我的許多代碼庫可以在使用Junit測試進行編譯時「正常」進行單元測試。需要請求和框架環境的單元測試代碼

有一個功能子集,需要一個HTTP請求的情況下被傳遞通過框架正常工作,並模擬所有的框架提供的對象,我靠努力是遠遠太困難了。

我在我的測試版本週期目前的做法是: 1)JUnit測試的一切,我可以用標準的JUnit測試 2)編譯和代碼部署到我的本地實例 3)發出HTTP請求到特定的「測試」資源在運行「測試」,並與預期值 返回一些值 4)檢查返回值,我的本地實例(重複3-4)

我試圖找出如何最有效地外界定我的測試該平臺(從我發出HTTP請求的地方)並從我的本地實例的上下文中執行它們。

有關構建和執行測試套件的最佳方法的想法提供了這些要求?

回答

0

什麼你試圖做我相信是運行哪些通常被稱爲「集成測試」或「驗收測試」。雖然這條線很模糊,但是集成測試/驗收測試的結果是它們通常涉及多個組件,其中作爲單元測試應該只關注一個組件並嘲諷一切。

Mybest建議是你創建一個單獨的測試套件,就可以開始您吊帶服務器(一個預定義的端口),然後運行一堆測試,這將使您的服務器的RESTful調用。

我建議您使用Spring Rest Template or Jersey's Rest Client使用JUnit。您的構建腳本將不得不啓動服務器。許多人使用Cargo(不幸的是,貨運站點現在正在運行)來做到這一點。

慢慢地使之變得更容易,你會成爲一個圖書館,方便賽程/方法/對象。

+0

對,我模糊了一點線。問題是我的課程中的每個方法都依賴於框架,所以我現在不能單元測試我的課程*。我想要做的是能夠發出請求http:// local:9000/test/myclass?exec = obj.getProperty(「foo」) - 並在負責myclass的servlet中聲明obj,並且然後對它執行「exec」的參數值。 (我明白這在錯誤的env中是很危險的)。我可能會最終爲類中的每個方法創建一個JSP,只打印返回值。 – empire29

+0

此外,我很高興RESTful調用我的服務器(開發或集成開發),我正在尋找一個很好的簡潔的方式來執行每個方法的測試,而不是過分冗長,並創建一個額外緊密耦合我的測試套件和env運行測試。 – empire29