2
所以我有一些具有挑戰性的代碼,我想重構。挑戰在於它依賴於數據庫查詢,EJB和Java serverFaces。不是同時但接近它。單元測試高度相互依賴的代碼
一個很好的例子是geocoder。取決於對數據庫的多個查詢,取決於輸入和存儲的數據,獲取有意義的結果。該代碼也可能引用其他幫助程序類並通過JSF框架查找它們。
測試這類代碼的最佳策略是什麼?我應該儘量分離出我的代碼嗎?我應該用嘲笑嗎?什麼爲別人工作?
所以我有一些具有挑戰性的代碼,我想重構。挑戰在於它依賴於數據庫查詢,EJB和Java serverFaces。不是同時但接近它。單元測試高度相互依賴的代碼
一個很好的例子是geocoder。取決於對數據庫的多個查詢,取決於輸入和存儲的數據,獲取有意義的結果。該代碼也可能引用其他幫助程序類並通過JSF框架查找它們。
測試這類代碼的最佳策略是什麼?我應該儘量分離出我的代碼嗎?我應該用嘲笑嗎?什麼爲別人工作?
那麼,簡短的回答是「是」。
首先,您需要將代碼充分分解以構建單元測試。您所描述的內容過於複雜,無法應用通常的單元測試方法,無論如何,您將獲得的更像是一個更高級別的驗收測試。
現在,就這一因素而言,您有幾種可能的方法,您可能會全部使用它們。
使用外部腳本測試數據庫查詢本身。
爲構件直接訪問數據庫構造適當的模擬,以便查看對已知結果的影響。
使用類似JUnit的框架爲功能單元構建單元測試。
檢查最先進的技術,看看您是否可以用單元測試有效地測試輸出HTML。