ejb 2.0 3.0_Java EE 6测试第I部分– EJB 3.1可嵌入API
ejb 2.0 3.0
我們從Enterprise JavaBeans開發人員那里聽到的最常見的請求之一就是需要改進的單元/集成測試支持。EJB 3.1規范引入了EJB 3.1可嵌入API,用于在Java SE環境中執行EJB組件。
與傳統的基于Java EE服務器的執行不同,可嵌入式用法允許客戶端代碼及其對應的企業bean在同一JVM和類加載器中運行。 這為測試,脫機處理(例如批處理)以及在桌面應用程序中使用EJB編程模型提供了更好的支持。
[…]可嵌入的EJB容器為托管環境提供了對Java EE運行時中存在的相同基本服務的支持:注入,對組件環境的訪問,容器管理的事務等。通常,企業bean組件不了解他們在其中運行的一種托管環境。 這使得企業組件在各種測試和部署方案中都具有最大的可重用性,而無需進行大量的返工。
讓我們來看一個例子。
首先創建一個Maven項目,然后添加可嵌入的GlassFish依賴項。
我選擇使用TestNG測試框架,但JUnit應該也能正常工作。
這是一個簡單的Stateless會話Bean:
@Stateless public class HelloWorld {public String hello(String message) {return "Hello " + message;} } 它通過無接口視圖公開業務方法。
它沒有可用于嵌入執行的特殊API。
這是一些在可嵌入容器中執行Bean的測試代碼:
public class HelloWorldTest {private static EJBContainer ejbContainer;private static Context ctx;@BeforeClasspublic static void setUpClass() throws Exception {// Instantiate an embeddable EJB container and search the// JVM class path for eligible EJB modules or directoriesejbContainer = EJBContainer.createEJBContainer();// Get a naming context for session bean lookupsctx = ejbContainer.getContext();}@AfterClasspublic static void tearDownClass() throws Exception {// Shutdown the embeddable containerejbContainer.close();}@Testpublic void hello() throws NamingException {// Retrieve a reference to the session bean using a portable// global JNDI nameHelloWorld helloWorld = (HelloWorld)ctx.lookup("java:global/classes/HelloWorld");// Do your testsassertNotNull(helloWorld);String expected = "World";String hello = helloWorld.hello(expected);assertNotNull(hello);assertTrue(hello.endsWith(expected));} }源代碼在GitHub上的ejb31-embeddable文件夾下可用。
有關JPA示例的分步教程,請閱讀使用嵌入式EJB容器從NetBeans文檔測試企業應用程序 。
盡管此新API向前邁了一大步,但我仍然對這種方法有疑問:您正在將容器進行測試。 這需要一個與您的生產環境不同的專用容器。
在Java EE 6測試第二部分中 ,我將介紹Arquillian和ShrinkWrap 。
Arquillian是一個強大的面向容器的測試框架,位于TestNG和JUnit之上,使您能夠在您選擇的容器上創建生產環境,并僅在該環境中執行測試(使用數據源,JMS目標以及許多其他工具)。您希望在生產環境中看到的其他配置)。 Arquillian不會將測試引入運行時,而是將您的測試引入了運行時。
相關文章
- Java EE 6測試第二部分– Arquillian和ShrinkWrap簡介
- Maven 2 Cobertura插件–更新
- 單元測試JBoss 5服務
- 條帶框架和EJB3
- Maven 2 Cobertura插件
- 上一篇文章:使用jQuery更改URL參數
- 下一篇文章:Java EE 6測試第二部分– Arquillian和ShrinkWrap簡介
參考: Java EE 6測試第I部分–來自我們JCG合作伙伴 Samuel Santos的EJB 3.1可嵌入API ,位于Samaxes博客上。
翻譯自: https://www.javacodegeeks.com/2012/06/java-ee-6-testing-part-i-ejb-31.html
ejb 2.0 3.0
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的ejb 2.0 3.0_Java EE 6测试第I部分– EJB 3.1可嵌入API的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三星 Galaxy S24 系列手机电池
- 下一篇: 多家航司回应:暂未接到通知允许飞行时打卫