IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  WebSphere  >

将 JUnit 插件集成到 WebSphere Studio 中

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 初级

Sunil Mahamuni, 高级软件工程师, IBM Global Services India
Pagadala J. Suresh, 软件工程师, IBM Global Services India

2003 年 6 月 01 日

Junit 是一个开放源代码的、并被业界认可的 Java™ 单元测试框架。IBM® WebSphere®Studio Application Developer(以下称为 Application Developer)是基于开放标准的 Eclipse 体系结构的下一代 IDE。本文旨在阐明如何在 Application Developer 中集成 JUnit 插件,并使用 JUnit 测试一个样本类。

© Copyright International Business Machines Corporation 2003. All rights reserved.

引言

Junit 是一个开放源代码的、并被业界认可的 Java™ 单元测试框架。IBM® WebSphere®Studio Application Developer(以下称为 Application Developer)是基于开放标准的 Eclipse 体系结构的下一代 IDE。本文旨在阐明如何在 Application Developer 中集成 JUnit 插件,并使用 JUnit 测试一个样本类。





回页首


先决条件

硬件

  • 500 Mhz 奔腾 P3 处理器
  • 256 MB 内存

软件

  • Windows NT® 4.0 或 Windows® 2000
  • WebSphere Studio Application Developer 4.0 版(4.01 版和 4.02 版亦可,但某些屏幕图像与本文所示略有差别)

技术水平

您需要知道如何在 Application Developer 中进行一些简单的任务,例如打开一个透视图或者创建一个 Java 类。





回页首


将 JUnit 集成进 Application Developer

  1. eclipse.org处下载下列文件:
    • org.junit.zip (使用 org.junit)包含 JUnit 测试框架的插件。
    • org.eclipse.jdt.junit1.0.0.zip (使用 org.eclipse.jdt.junit)包含从 Eclipse 中启动 JUnit 测试并查看测试结果的插件。
  2. 将以上文件解压缩至 Application Developer 的 plugins 目录: <Appliation Developer>\plugins
  3. 打开 Application Developer 工作台。
  4. 选择 Window => Preferences
  5. 在 Preferences 窗口中,选择 Plug-in development
  6. 右边的窗格会显示所有已装入的插件。单击 Reload重新装入 JUnit 插件。
  7. 重新装入以后,在已装入插件列表中查找下列各项:
  8. 重新启动 Application Developer。
  9. 选择 Perspective => Show view => Other => Java
  10. 在 Java 透视图中,找到 JUnit 视图。




回页首


运行测试案例

1. 设置用来运行测试案例的项目

  1. 打开 Java 透视图
  2. 创建一个 Java 项目,命名为 SampleJavaProject
  3. 在该项目的上下文菜单中,选择 Properties
  4. 在 Java 的 Properties 窗口中,选择 Java build path
  5. 在右边的窗格中,选择 Libraries选项卡。
  6. 单击 Add External JAR
  7. <Application Developer>\plugins\org.junit\ 目录中选择 junit.jar
  8. 想要看到 JUnit 的源代码,您需要从上述目录中添加 src.jar
  9. 添加了 junit.jarsrc.jar 之后,再将它们添加至库中,如下面图 1 中突出显示的部分所示。
  10. 在所选项目的 Properties 窗口中,单击 OK

图 1. Java build path

2. 创建一个样本类

  1. 打开 Java 透视图。
  2. 在前面创建的 SampleJavaProject 项目的 test.sample 包中创建一个名为 SampleJavaClass Java 类。
  3. 在 Java 编辑器中打开 SampleJavaClass,添加下列代码并保存。
    package test.sample;
    public class SampleJavaClass {
       /**
       * Constructor
       */
       public SampleJavaClass() {
           super();
       }
       /**
       * Adds two numbers. This method is tested
       * by sample test cases.
       */
       public int add(int a, int b) {
           return a + b;
       }
    }
                

  4. SampleJavaClass 包含 add() 方法,该方法在样本测试案例中使用。

3. 创建样本测试案例

  1. 打开 Java 透视图。
  2. SampleJavaProject 项目的 test.testcase 包中创建一个名为 SampleJavaTestCase Java 类。
  3. 在 Java 编辑器中打开 SampleJavaTestCase,添加下列代码并保存。
    package test.testcase;
    import junit.framework.TestCase;
    importtest.sample.SampleJavaClass;
    public class SampleJavaTestCase extends TestCase {
        /**
         * Constructor for SampleJavaTestCase
         */
        public SampleJavaTestCase(String name) {
           super(name);
        }
        /**
         * Test to test the method add in Sample Java Class
         */
        public void testAdd() {
            SampleJavaClass samp = new SampleJavaClass();
            int c = samp.add(2, 3);
            assertEquals(c, 5);
        }
        /**
         * Test to test the method add in Sample Java Class.
         * In this test, wrong expected value is given in
         * assert statement, assertEquals(c, 10), to demonstrate assert statement.
         */
        public void testAdd1() {
            SampleJavaClass samp = new SampleJavaClass();
            int c = samp.add(2, 3);
            assertEquals(c, 10);
        }
        /**
         * Main method to run Test Case in JUnit
         * Frame Work
         */
        public static void main(String[] args) {
            junit.textui.TestRunner.run(new SampleJavaTestCase(""));
        }
    }
                

  4. assertEquals 语句用来验证结果与预期输出是否一致:
    assertEquals(actualOutput, expectedOutput);
    如果 actualOutputexpectedOutput 不匹配,它将在输出中列出测试失败情况。
  5. 上面的测试案例中包含 SampleJavaClass 中关于 add() 方法的两个测试。 testAdd() 演示了一个成功测试的输出, testAdd1() 演示了一个失败测试的输出。

4. 运行测试案例

  1. 打开 Java 透视图。
  2. 请确保下面两个类编译正确:
    • test.sample.SampleJavaClass
    • test.testcase.SampleJavaTestCase
  3. 在 Packages 视图中,选择测试案例 SampleJavaTestCase
  4. 在工具栏中选择 Run => Junit tests
  5. 如果 Debug 透视图已打开,请返回 Java 透视图。
  6. JUnit 视图打开显示测试案例的结果。
    提示:当程序以 Run 方式启动时请关闭 Window =>Preferences => Debug => Show Debug perspective选项,这样在执行过测试案例后就不会再显示 Debug 透视图。




回页首


关于 JUnit 视图

当您运行测试案例时,JUnit 视图就会被激活。它将通过一个红色的状态条显示测试中的失败,如图 2 所示。JUnit 视图用两页选项卡显示测试案例的结果:Failures 选项卡和 Hierarchy 选项卡:

图 2 显示了 JUnit 视图中 Failures 选项卡的用户界面。它列出了所有失败的测试以及它们各自的故障跟踪。


图 2. Failures 选项卡

图 3 显示了 JUnit 视图中 Hierarchy 选项卡的用户界面。它列出了所有的测试案例以及它们的执行情况。测试名称前面绿色的对勾表示测试成功( ),而“x”( )则表示测试失败:


图 3. Hierarchy 选项卡

如果所有的测试都是成功的,那么 JUnit 视图将显示一条绿色的状态条,如图 4 所示:


图 4. 执行成功

除了上述信息之外,JUnit 视图还提供了下列测试结果:

  • 全部测试中已完成的测试数目: 指定被提交要执行的测试总数中已执行的测试的数目。
  • 错误数目: 指定在执行全部测试过程中遇到的错误总数。
  • 失败数目: 指定在执行断言语句过程中遇到的失败总次数。
  • Application Developer 状态条: 指定完成测试所耗费的时间。

失败是可以预期的并会被断言语句检测出来,而错误则是无法预期的。





回页首


关于 JUnit 测试查找器(JUnit Test Finder)

JUnit 测试查找器是用来搜索给定的包或项目中的测试案例或测试套件。您可以从 JUnit 测试查找器的列表中选择任何一个测试案例或测试套件来运行:


图 5. JUnit 测试查找器

搜索包或项目中的测试案例或测试套件

  1. 选择想要查找的测试案例所在的项目或包。
  2. 单击 JUnit tests,如图 7 所示。
  3. JUnit 测试查找器窗口打开,显示项目或包中的测试案例或测试套件的列表。(参见图 5)
  4. 选择您所需要的测试案例,然后单击 Finish。

再次运行上一次的测试案例

要重新启动上次运行的测试案例,请选择 Debug => Relaunch last,或者按 F10键。





回页首


过滤器模式

过滤器模式被用来从测试失败通知中过滤掉不感兴趣的堆栈帧。


图 6. 堆栈过滤器模式

定义过滤器模式

  1. 从 Application Developer 工具栏中,选择 Window => Preferences
  2. 选择 JUnit
  3. 右边的窗格将显示堆栈过滤器模式列表。图 6 显示了过滤器模式的列表和输入新的过滤器模式的对话框。
  4. 想要将新的模式加进列表,请单击 Add
  5. 想要从列表中删除模式,请单击 Remove过滤掉失败通知中我们不感兴趣的堆栈帧。

选择 Filter stack trace entries failed tests来过滤已添加的堆栈过滤器模式。取消选择 Filter stack trace entries failed tests来禁用过滤机制。





回页首


测试案例方式

测试案例可以在下列两种方式下启动:


图 7. 在 Run 方式下启动测试案例


图 8. 在 Debug 方式下启动测试案例

在前面的示例中,测试案例是在 Run 方式下启动的,如图 7 所示。如果希望看到失败测试案例的详细信息,则需要在 Debug 方式下启动,如图 8 所示。

在 Debug 方式下启动测试案例或测试套件:

  1. 在 Package Explorer 中选择测试案例或测试套件。
  2. 单击菜单栏中的 Debug 图标出现一个下拉菜单
  3. 展开 Debug菜单项,然后单击 JUnit tests。遇到断点时暂挂控制将打开 Debug 透视图。




回页首


结束语

本文向您说明了如何:

  • 将 JUnit 和 Application Developer 集成和自动化单元测试。
  • 在 JUnit 视图中查找测试结果。
  • 使用 JUnit 测试查找器搜索特定的项目或包中的测试案例。
  • 将不感兴趣的堆栈帧从堆栈跟踪信息中过滤掉,使得堆栈跟踪信息更清晰。
  • 在 Debug 方式下运行测试案例来调试需要测试的类。



参考资料



作者简介

Sunil Mahamuni是 IBM Global Services India 的高级软件工程师和小组负责人。他在金融服务部门从事银行业与保险业的应用开发。他过去曾参与过 J2EE 和无线开发项目。他拥有印度 Osmania University 计算机应用硕士学位。您可以通过 msunil@in.ibm.com与 Sunil 联系。


Pagadala J. Suresh 的照片

Pagadala J. Suresh是设在印度的 IBM Global Services 的软件工程师。他在 Gudivada 的 Akkineni Nageshwara Rao College 获得了学士学位,又在 Surathkal 的 Karnataka Regional Engineering College 获得计算机应用硕士学位。他获得了 IBM Certified Application Developer Associate for Websphere Studio Application Developer 证书。他从事过在因特网上公开应用程序时的静态安全问题。他的专长是在 WebSphere 和 Java 技术。他的技能领域是在银行和保险业。他拥有 IBM WebSphere Business Components Composer Framework 方面的经验。您可以通过 pjsuresh@in.ibm.com和他联系。




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

建议?







回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款