2011-01-27 97 views
4

我已經使用了它,但似乎很難找到模仿依賴注入對象(EJB 3.0)的主題。如何模擬帶註釋的EJB?

public class MyTestBean 
    { 
    @EJB 
    ILoginService mLoginService; 
    public void doLogin() { 
     if (!mLoginService.login(name, pass)) { 
     // fehler 
    } 
    } 

當用openEJB運行測試我希望讓LoginService.login(name,pass)返回true。有沒有辦法模擬LoginService bean?

(目前按登錄梅索德使用一些JAAS的東西,在測試過程中,我不能效仿。)

回答

3

可能看一看的Mockito。您可以在setter上應用@EJB註釋,並在測試中注入模擬的LoginService。

1

另一種選擇是簡單地提供ILoginService接口的第二個實現。這第二個實現是模擬,但沒有特別的模擬庫或支持是必要的。

你把這個實現是一個特殊的源文件夾,通常叫做測試。然後,您將構建您的部署腳本,以便正常構建時忽略此測試文件夾。當您執行單元測試並構建用於測試的存檔時,您顯式地包含測試源文件夾中的模擬實現。

+0

我的問題有點不對,所以對於我一直在尋找答案似乎很合適。我想在MyTestBean上運行測試。 MyTestBean我只能通過IMyTestBean達到mContext.lookup(「MytestBeanLocal」); - 現在我看到我將調整我的配置多遠。服務bean都是註釋的,所以可能使用相同的註釋進行模擬和實際實現,並根據測試環境或生產環境排除它們。 – justastefan 2011-01-28 12:16:06