程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 使用NetBeans IDE測試Enterprise Beans

使用NetBeans IDE測試Enterprise Beans

編輯:關於JAVA

使用 NetBeans IDE 測試 Enterprise Beans

John Jullion-Ceccarelli 和 Petr Blaha

JUnit 並不是測試企業應用程序的最佳測試框架,因為 JUnit 運行在與 enterprise beans 不同的 JVM 上。因此,必須使用遠程接口來訪問並測試 enterprise beans。

開始之前,必須在計算機上安裝 Sun Java System (SJS) Application Server Platform Edition 8.1(下載)。您無法將企業應用程序部署到綁定的 Tomcat 服務器。還必須在 IDE 中注冊應用程序服務器,通過選擇 Tools > Server Manager。

設置示例項目

下載示例項目 TestEnterpriseBean 並在 IDE 中打開它。該 bean 有一個會話 bean (AdminBean),擁有三個簡單的業務方法:

public String getString(String name) {
return "response:" + name;
}
public int getInt(int number1, int number2) {
return number1 * number2;
}
public vo.Person getVO() {
return new vo.Person("Joe User",13);
}
生成測試

右鍵單擊項目的 Test Libraries 節點,然後選擇 Add JAR/Folder 將應用程序服務器的 lib/j2ee.jar 和 lib/appserv-rt.jar 文件添加到測試類路徑。

展開 Enterprise Beans 節點,然後雙擊 AdminSB 在 Source Editor 中打開 AdminBean.java。

按下 Ctrl-Alt-J 生成測試。單擊 OK 使用默認值選項運行測試。

刪除基礎架構方法的測試:

testSetSessionContext

testEjbActivate

testEjbPassivate

testEjbRemove

testEjbCreate

將以下字段聲明添加到 AdminBeanTest:private beantest.AdminRemote admin;

右鍵單擊 AdminBeanTest.java,然後選擇 Enterprise Resources > Call Enterprise Bean。選擇 AdminSB,然後單擊 OK。IDE 會輸入一個 lookupAdminBean 方法。

更改 lookupAdminBean 方法,使用全局 JNDI 名代替本地名:private beantest.AdminRemote lookupAdminBean() {
try {
javax.naming.Context c = new javax.naming.InitialContext();
Object remote = c.lookup("ejb/AdminBean");
beantest.AdminRemoteHome rv =
(beantest.AdminRemoteHome) javax.rmi.PortableRemoteObject.narrow(remote,
beantest.AdminRemoteHome.class);
return rv.create();
}

將以下粗體表示的代碼添加到 setUp 和 tearDown 方法中:protected void setUp() throws Exception {
admin = lookupAdminBean();
}
protected void tearDown() throws Exception {
admin.remove();
}

實現對 enterprise bean 的業務方法進行測試的方法:

public void testGetString() throws java.rmi.RemoteException {
System.out.println("testGetString");
assertEquals("response:Test",admin.getString("Test"));
}
public void testGetInt() throws java.rmi.RemoteException {
System.out.println("testGetInt");
assertEquals(5*3,admin.getInt(5,3));
}
public void testGetVO() throws java.rmi.RemoteException {
System.out.println("testGetVO");
assertEquals("xxxxx", admin.getVO().getName());
}

運行測試

右鍵單擊 TestEnterpriseBean 項目,然後選擇 Deploy Project。

選擇 Run > Test "TestEnterpriseBean" (Alt-F6)。IDE 會運行 JUnit 測試,然後顯示以下輸出:testGetString
testGetInt
testGetVO
Testsuite: beantest.AdminBeanTest
Tests run: 3, Failures: 1, Errors: 0, Time elapsed: 1.903 sec
------------- Standard Output ---------------
testGetString
testGetInt
testGetVO
------------- ---------------- ---------------
------------- Standard Error -----------------
13-Jun-2005 15:02:40 com.sun.corba.ee.spi.logging.LogWrapperBase doLog
INFO: "IOP00710299: (INTERNAL) Successfully created IIOP
listener on the specified host/port: all interfaces/4681"
------------- ---------------- ---------------
Testcase: testGetVO(beantest.AdminBeanTest):FAILED
expected:<xxxxx> but was:<Joe User>
junit.framework.ComparisonFailure: expected:<xxxxx> but was:<Joe User>
at beantest.AdminBeanTest.testGetVO(AdminBeanTest.java:54)
13-Jun-2005 15:02:40 com.sun.corba.ee.spi.logging.LogWrapperBase doLog
INFO: "IOP00710299: (INTERNAL) Successfully created IIOP
listener on the specified host/port: all interfaces/4681"
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
Test beantest.AdminBeanTest FAILED
test-report:
C:newTestEnterpriseBeannbprojectbuild-impl.xml:383: Some tests failed; see details above.
BUILD FAILED (total time: 4 seconds)

現在,我們更改測試以查找正確的人。轉到 TestAdminBean.java 中的 testGetVO 方法,然後進行以下更改:public void testGetVO() throws java.rmi.RemoteException{
System.out.println("testGetVO");
assertEquals("Joe User", admin.getVO().getName());
}

按 Alt-F6 再次運行測試。IDE 會顯示以下輸出:testGetString
testGetInt
testGetVO
Testsuite: beantest.AdminBeanTest
Tests run: 3, Failures: 0, Errors: 0, Time elapsed: 1.993 sec
------------- Standard Output ---------------
testGetString
testGetInt
testGetVO
------------- ---------------- ---------------
------------- Standard Error -----------------
13-Jun-2005 15:05:06 com.sun.corba.ee.spi.logging.LogWrapperBase doLog
INFO: "IOP00710299: (INTERNAL) Successfully created IIOP
listener on the specified host/port: all interfaces/4686"
------------- ---------------- ---------------
13-Jun-2005 15:05:06 com.sun.corba.ee.spi.logging.LogWrapperBase doLog
INFO: "IOP00710299: (INTERNAL) Successfully created IIOP
listener on the specified host/port: all interfaces/4686"
test-report:
test:
BUILD SUCCESSFUL (total time: 3 seconds)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved