2012-09-12 202 views
0

我有一個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。

回答

2

不確定究竟如何,但Mockito可以是一個不錯的選擇。
有關詳細信息,請檢查此link

+0

我聽說過像Mockito這樣的嘲諷圖書館,但你能詳細解釋一下嗎?如何注入模擬實現並在不同的庫中使用它? – Swapnil

+0

@SwapnilS:我在我的答案中添加了鏈接。 – xyz