Thomson-Blog ( 学习,学习,再学习;努力,努力,再努力。)
在学习的路上不断成长,成功之路就在脚下。

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 透视图。
posted on 2008-08-22 10:56  Thomson-Blog  阅读(245)  评论(0)    收藏  举报