2011-10-03 60 views
2

所以我有一些具有挑戰性的代碼,我想重構。挑戰在於它依賴於數據庫查詢,EJB和Java serverFaces。不是同時但接近它。單元測試高度相互依賴的代碼

一個很好的例子是geocoder。取決於對數據庫的多個查詢,取決於輸入和存儲的數據,獲取有意義的結果。該代碼也可能引用其他幫助程序類並通過JSF框架查找它們。

測試這類代碼的最佳策略是什麼?我應該儘量分離出我的代碼嗎?我應該用嘲笑嗎?什麼爲別人工作?

回答

4

那麼,簡短的回答是「是」。

首先,您需要將代碼充分分解以構建單元測試。您所描述的內容過於複雜,無法應用通常的單元測試方法,無論如何,您將獲得的更像是一個更高級別的驗收測試。

現在,就這一因素而言,您有幾種可能的方法,您可能會全部使用它們。

  1. 使用外部腳本測試數據庫查詢本身。

  2. 爲構件直接訪問數據庫構造適當的模擬,以便查看對已知結果的影響。

  3. 使用類似JUnit的框架爲功能單元構建單元測試。

  4. 檢查最先進的技術,看看您是否可以用單元測試有效地測試輸出HTML。