JUnitEE 对 enterprise bean 进行单元测试

在 IBM Rational Application Developer 中如何使用 JUnitEE 对 enterprise bean 进行单元测试

SimpleBeanTest

developerWorks
文档选项
<script type="text/javascript" language="JavaScript"> </script>
将此页作为电子邮件发送

将此页作为电子邮件发送

样例代码


拓展 Tomcat 应用

下载 IBM 开源 J2EE 应用服务器 WAS CE 新版本 V1.1


级别: 初级

Sanjeev M Patil (sanjeev.patil@in.ibm.com), 软件工程师, IBM

2006 年 10 月 09 日

个人很不喜欢玩EB,但是由于公司的老系统要做MIGRATION,修改了代码,同时我们得做testing,郁闷ing…… JES Migration 。。。

 

JUnitEE 是 JUnit 测试框架的一个扩展。JUnit 提供了编写单元测试的框架,而 JUnitEE 允许直接在应用服务器中运行这些测试。这为在同一运行时生产环境中测试 EJB/基于servlet的应用程序提供了有利条件。本文将会为您展示如何在 IBM Rational Application Developer 中使用 JUnitEE 对 enterprise bean 进行单元测试。

介绍

使用 JUnit 来测试 J2EE 应用程序仅仅是理想化的,因为应用服务器不能运行这些测试。而且,在测试用例中构建必需的客户端属性是一种枯燥的过程。幸运的是,JUnitEE 能够方便的用来测试你的 J2EE 应用程序。JUnitEE 是一个 JUnit TestRunner ,JUnit TestRunner 是使用 HTML/XML 作为用户界面表示的 servlet。 这意味着 JUnitEE 提供了 servlet 作为你的测试用例的入口点,并以 HTML/XML 的形式得到所需输出。如果你想自己动手开始工作,那么你需要开发 enterprise bean 并在服务器端部署它,以便你可以编写一个 JUnitEE 来测试它。好消息是我们已经为你开发好了 enterprise bean,你可以下载并在服务器中部署它。本文的目的是向你介绍如何使用 JUnitEE 测试 enterprise bean 的基本概念与步骤。

前提条件

在运行测试之前,你应当已经安装了 IBM® Rational® Application Developer v6 (IRAD)。本文假设你对IRAD很熟悉。同时假设你对Java™、Java™ 2 平台、企业版(J2EE™)和 JUnit 有一定了解。

我们还假设你已经:

  • 打开了 IRAD 的 J2EE 透视图
  • 配置了 IRAD 中的服务器(IBM® WebSphere® Application Server v6.0)




回页首


下载并安装简单的 EJB 项目

下载 SimpleEJBEAR.zip(从 下载 部分),解压文件并在 IRAD 中安装 SimpleEJBEAR.ear(在内置 WebSphere 服务器中部署)。

EAR 包含 Enterprise JavaBeans™(EJB™)项目(SimpleEJB),并且包含了一个简单的 Session bean (SimpleBean),这个 Session bean 拥有一个返回字符串Hello World的被称为show()的方法。

安装 SimpleEJBEAR 的步骤

打开 IRAD。选择一个新的工作空间 (sample.workspace)。如果还没选择,转换到J2EE 透视图。本文后半部分假设J2EE 透视图已被选择。

  1. 右键点击 Enterprise Applications。选择 Import > EAR file 如图1所示。


    图1. 导入 EAR 文件
    EAR file



  2. 在导入窗口中,通过EAR file选项浏览(已下载的) SimpleEJBEAR.ear 文件。EAR Project 选项的名字应该是 SimpleEJBEAR,如图2所示。点击 Finish 按钮。


    图2. 选择文件
    file selected



  3. 在 EJB Projects 下右键点击SimpleEJB,选择 Run > Run on Server,如图3所示。


    图3. 运行 EAR 项目
    EAR project



  4. 在S erver Selection 窗口中,选择所需服务器并且点击 Next,如图4所示。


    图4. 选择服务器
    server selected



  5. 确定 SimpleEJBEAR 在 Configured Projects 中,如图5所示,然后点击Finish


    图 5. 已配置的项目
    Project is configured

当你点击 Finish时,SimpleEJBEAR 将被部署到服务器上,之后会自动打开通用测试客户端(UTC)。UTC 提供了通用的可视化界面来测试服务器端的应用程序(例如,在 EJB home objects 中创建方法)。本文关注于通过编程的方式测试服务器端的功能 - 而不是通过 UTC 完成的有限的单元测试 - 因此你可以关闭 UTC 窗口了。





回页首


创建简单的 Web 项目 (Dynamic Web Project)

创建名为SimpleJUnitEEWeb的动态 Web 项目

  1. 从主工具栏中,选择File > New > Dynamic Web Project,如图6所示。


    图 6. 选择一个动态 Web 项目
    web project



  2. 在 New Dynamic Web Project 窗口中,将项目Name设为SimpleJUnitEEWeb。如果默认没有选择,那么点击Show Advanced 按钮(也就是,如果Hide Advanced按钮出现,则忽略这一步)。从组合选择框中选择 SimpleEJBEAR 作为EAR project 的值,点击 Next,如图7所示。


    图7. 选择SimpleEJBEAR 项目
    SimpleEJBEAR project



  3. 添加被依靠的的JAR 文件,并且点击Finish,如图8所示。

    注意:如果你被提示切换到另一透视图,选择No(你需要留在 J2EE 透视图)


    图 8. 添加被依赖JAR 文件
    adding JARs





回页首


在 Dynamic Web Project(SimpleJUnitEEWeb)中创建 JUnit 类

把 junit.jar 和 junitee.jar(可在 参考资料 部分下载)放在 SimpleJunitEEWeb/WebContent/WEB-INF/lib 目录下 ,如图9所示(用 导入复制粘贴 将其放在lib目录中)。



图9. 在 lib 目录中放入文件
files in lib directory


  1. 右键点击 SimpleJunitEEWeb 项目并选择New > Other,如图10所示。


    图 10. 打开一个新的项目
    new project opened



  2. 在新窗口中点击 Java > JUnit > JUnit Test Case 然后点击 Next,如图11所示。


    图 11. 启动测试用例
    test case



  3. 添加 JUnit Test 类详细信息
    • Package 下输入 com.ibm.basic.bean.test
    • 输入 SimpleBeanTest作为 Class name
    • 选中 setup()teardown()constructor() 复选框
    • 点击 Class Under Test 中的 Browse,如图12所示。


      图12. 添加类详细信息
      class details



  4. 在 Class Under Test 窗口中输入 SimpleBean
    Qualifier 下,选择com.ibm.basic.bean 包并点击OK,如图 13 所示。


    图 13. 选择需要测试的类( Class Under Test)
    Class Under Test



  5. 点击 Next,如图 14所示,


    图 14. 下一步
    next step



  6. SimpleBean下选择 show()方法,点击 Finish,如图 15所示。


    图15. 完成
    SimpleBean method selected







回页首


编辑 SimpleBeanTest

SimpleJUnitEEWeb > Java Resources > Java Source > com.ibm.basic.bean.test 打开 JUnit 类 SimpleBeanTest

编辑如下所列的类(添加高亮显示的值),并 保存 文件。

/*
* Created on Nov 14, 2005
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.ibm.basic.bean.test;

import java.rmi.RemoteException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import com.ibm.basic.bean.Simple;
import com.ibm.basic.bean.SimpleHome;

import junit.framework.TestCase;
/**
* @author Sanjeev M Patil
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class SimpleBeanTest extends TestCase {


protected Simple simple = null;

/*
* @see TestCase#setUp()
*/
protected void setUp() throws Exception {
super.setUp();

Context jndiContext = new InitialContext();
Object einRef=jndiContext.lookup("ejb/com/ibm/basic/bean/SimpleHome");
SimpleHome home=(SimpleHome)PortableRemoteObject.narrow(einRef,SimpleHome.class);
this.simple = home.create();

}

/*
* @see TestCase#tearDown()
*/
protected void tearDown() throws Exception {
super.tearDown();
}

/**
* Constructor for SimpleBeanTest.
* @param arg0
*/
public SimpleBeanTest(String arg0) {
super(arg0);
}

public void testShow() throws RemoteException {

String show = simple.show();
assertEquals("Hello World",show);

}
}






回页首


添加文本文件以列出 testCase 类

SimpleJUnitEEWeb > Web Content> WEB-INF下添加名为 testCase.txt 的文件

  1. 右键点击WEB-INF (SimpleJUnitEEWeb > Web Content> WEB-INF)。
    选择New > Other,如图 16所示。


    图 16. 添加文本文件
    text file added



  2. 在新窗口中选择Simple > File,点击 Next,如图 17所示。


    图 17. 选择文件
    file selected



  3. File Name文本域中输入 testCase.txt并点击Finish,如图 18所示。


    图18. 指定文件名
    filename



  4. 打开 testCase.txt 并添加 com.ibm.basic.bean.test.SimpleBeanTest, 然后 保存 文件。


    你的文件应当如图19所示。


    图 19. 修改过的文件
    file is modified







回页首


编辑 web.xml

SimpleJUnitEEWeb > Web Content> WEB-INF中双击打开 web.xml (Web 配置描述符) 文件
(它已存在于项目中)。以如下代码代替 Source 标签中的内容,然后保存文件。

   

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<display-name>SimpleJUnitEEWeb</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<description> JUnitEE test runner</description>
<display-name> JUnitEEServlet</display-name>
<servlet-name>JUnitEEServlet</servlet-name>
<servlet-class>org.junitee.servlet.JUnitEEServlet</servlet-class>

</servlet>
<servlet-mapping>
<servlet-name>JUnitEEServlet</servlet-name>
<url-pattern>/TestServlet/*</url-pattern>
</servlet-mapping>

</web-app>






回页首


运行项目

选择 SimpleJUnitEEWeb 项目。

右键点击这个项目,并选择 Run > Run on the Server, 然后点击 Finish

IRAD 将使用 URL http://localhost:9080/SimpleJUnitEEWeb 启动 Web 浏览器。

编辑 URL 成为 http://localhost:9080/SimpleJUnitEEWeb/TestServlet

  1. 你应当在浏览器中看到如下信息。


    图 20. TestServlet
    TestServlet



  2. 点击Run all 按钮,你会看到如图21的结果。


    图21. 结果
    results





回页首


测试你的基于EJB的应用程序

正如你能看到的,JUnitEE 使得应用服务器可以很容易的运行你的测试。




回页首


下载

描述名字大小下载方法
Sample EJB project for this articlesimpleejbear.zip52 KB  FTP
关于下载方法的信息Get Adobe® Reader®


参考资料

学习

获得产品和技术

讨论


关于作者

 

Sanjeev M Patil 是一名在 IBM 从事 Business Resilience 工作的系统软件工程师,Business Resilience 是 IBM 随需应变路线图中的重要部分。他拥有印度 Karnataka MCE Hassan 的机械工程学士学位。Sanjeev 的邮件地址是sanjeev.patil@in.ibm.com

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值