跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

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

SimpleBeanTest

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

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

发布日期: 2006 年 10 月 09 日
级别: 初级
访问情况 : 881 次浏览
评论: 


介绍

使用 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 KBHTTP

关于下载方法的信息


参考资料

学习

获得产品和技术

讨论

关于作者

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

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 使用条款

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

(长度在 3 至 31 个字符之间)


单击提交则表示您同意developerWorks 的条款和条件。 使用条款.

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=166513
ArticleTitle=在 IBM Rational Application Developer 中如何使用 JUnitEE 对 enterprise bean 进行单元测试
publish-date=10092006
author1-email=sanjeev.patil@in.ibm.com
author1-email-cc=

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。