我使用mockejb框架來模擬內存中的實體bean,我做了一個查找,mockejb爲我帶來了一個真實實體的代理。這很奏效。(MockEJB)從容器內測試獲取模擬的實體bean
但我需要從容器JNDI獲得一個會話Bean來「理解」那個。我的意思是,當Session Bean對Entity Bean進行查找時,我希望它接收我嘲笑的bean,而不是數據庫中的bean。
我不能模擬這個會話Bean,因爲在我試圖模擬的方法中,有一個查詢實體bean,所以我需要這個方法來正常執行,但在查找時接收模擬bean。
[更新] 信息對我的發展環境: 我將使用IBM RSA 7.5,IBM的Websphere 6.1, 我有一個容器內用仙人掌運行Web測試項目,在我的類路徑中最後一個庫是:
- 仙人掌1.7.2.jar
- CGLIB的節點p-2.1_3.jar
- 公地httpclient的-2.0.2.jar
- 共享記錄-1.0.4.jar
- powermock-EasyMock的-1.3.9-full.jar
- 的junit-3.8.1.jar
- mockejb.jar
實驗值:我已經改到最新版本powermock與jUnit4,並試圖只使用EasyMock 3.0,並嘗試與它的類擴展EasyMock 2.x。這些都沒有奏效。真正讓我感興趣的是EasyMock文檔中提到的DefaultInstantiator配置:http://easymock.org/EasyMock2_4_ClassExtension_Documentation.html。我想知道如果這是我的情況(不支持JVM),我無法使它工作。
感謝您的幫助。
謝謝,我想。但現在的問題是,查找的類是單例= S。所以,我試圖按照說明來模擬特定的靜態方法(http://redchilliplus.wordpress.com/2010/06/08/unit-testing-in-java-with-easymock-and-powermock/和http:// code.google.com/p/powermock/source/browse/trunk/modules/module-test/easymock/junit4-test/src/test/java/samples/junit4/singleton/MockStaticTest.java)但他們都沒有工作=/ –
我忘了提,但似乎模擬不能正確使用我正在使用的JVM。它給了我一個錯誤:「<類的名稱>不是一個接口。」即使在使用EasyMock 3或EasyMock 2.x時使用類擴展或PowerMock = S –
如果您發佈瞭如何特別設置測試類和classpath(或pom.xml),也許我們可以提供幫助。 – dbalakirev