我有一個java應用程序,它有多個模塊 - (GWT-)RPC服務perf-library
,remote-client
(我的團隊編寫/擁有的所有Java代碼)。 perf-library
包含與Spring AOP方面相關的代碼,它主要用於將截獲的方法日誌推送到數據存儲區。現在,perf-library
依賴於另一個實際維護隊列的遠程客戶端,並處理將日誌推送到數據存儲的作業。所以,從某種意義上說,perf-library
只是將任務委託給遠程客戶端。 業務邏輯代碼調用具有AOP邏輯的截獲方法,因此存在對遠程客戶機的依賴。顯然,我不想在單元測試中連接到遠程客戶端。我想我需要模擬連接到遠程客戶端的方法push()
的實現。我無法弄清楚的是如何在業務邏輯代碼包單元測試中使用模擬實現。模擬單元測試的AOP方法
爲了澄清的事情,我已經模塊這樣的 -
RPC service module
- 例如方法login()
被攔截。perf-library
- 有問題(攔截像login()
方法),並實現調用remote-client
remote-client
- 將數據推送到一些數據存儲現在
,用於編寫RPC服務方法的單元測試,如何因爲它是perf-library的內部模塊,所以我獲得了push()
的模擬實現。比方說,我有一個接口LogClient
(方法push()
),它由兩個類(一個用於生產,另一個用於測試)實現。我可以使用這個Test實現進行perf-library本身的單元測試,但是如何讓RPC單元測試使用它。我是Spring的新手,所以不確定這是否可以用Spring或其他方法輕鬆完成。任何幫助都會很好。
注意:我們使用Spring維護beans和DI。
我聽說過像Mockito這樣的嘲諷圖書館,但你能詳細解釋一下嗎?如何注入模擬實現並在不同的庫中使用它? – Swapnil
@SwapnilS:我在我的答案中添加了鏈接。 – xyz