级别: 初级 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
- 从
eclipse.org处下载下列文件:
- 将以上文件解压缩至 Application Developer 的
plugins 目录:
<Appliation Developer>\plugins 。
- 打开 Application Developer 工作台。
- 选择
Window => Preferences。
- 在 Preferences 窗口中,选择
Plug-in development。
- 右边的窗格会显示所有已装入的插件。单击
Reload重新装入 JUnit 插件。
- 重新装入以后,在已装入插件列表中查找下列各项:
- JUnit Testing Framework
- org.eclipse.jdt.junit
图 0. 重新装入插件
- 重新启动 Application Developer。
- 选择
Perspective => Show view => Other => Java。
- 在 Java 透视图中,找到 JUnit 视图。
运行测试案例
1. 设置用来运行测试案例的项目
- 打开
Java 透视图。
- 创建一个 Java 项目,命名为
SampleJavaProject 。
- 在该项目的上下文菜单中,选择
Properties。
- 在 Java 的 Properties 窗口中,选择
Java build path。
- 在右边的窗格中,选择
Libraries选项卡。
- 单击
Add External JAR。
- 从
<Application Developer>\plugins\org.junit\ 目录中选择
junit.jar。
- 想要看到 JUnit 的源代码,您需要从上述目录中添加
src.jar。
- 添加了
junit.jar 和
src.jar 之后,再将它们添加至库中,如下面图 1 中突出显示的部分所示。
- 在所选项目的 Properties 窗口中,单击
OK。
图 1. Java build path
2. 创建一个样本类
- 打开 Java 透视图。
- 在前面创建的
SampleJavaProject 项目的
test.sample 包中创建一个名为
SampleJavaClass Java 类。
- 在 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;
}
}
|
-
SampleJavaClass 包含
add() 方法,该方法在样本测试案例中使用。
3. 创建样本测试案例
- 打开 Java 透视图。
- 在
SampleJavaProject 项目的
test.testcase 包中创建一个名为
SampleJavaTestCase Java 类。
- 在 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(""));
}
}
|
-
assertEquals 语句用来验证结果与预期输出是否一致:
assertEquals(actualOutput, expectedOutput);
如果
actualOutput 和
expectedOutput 不匹配,它将在输出中列出测试失败情况。
- 上面的测试案例中包含
SampleJavaClass 中关于
add() 方法的两个测试。
testAdd() 演示了一个成功测试的输出,
testAdd1() 演示了一个失败测试的输出。
4. 运行测试案例
- 打开 Java 透视图。
- 请确保下面两个类编译正确:
-
test.sample.SampleJavaClass
-
test.testcase.SampleJavaTestCase
- 在 Packages 视图中,选择测试案例
SampleJavaTestCase。
- 在工具栏中选择
Run => Junit tests。
- 如果 Debug 透视图已打开,请返回 Java 透视图。
- 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 测试查找器
搜索包或项目中的测试案例或测试套件
- 选择想要查找的测试案例所在的项目或包。
- 单击
JUnit tests,如图 7 所示。
- JUnit 测试查找器窗口打开,显示项目或包中的测试案例或测试套件的列表。(参见图 5)
- 选择您所需要的测试案例,然后单击 Finish。
再次运行上一次的测试案例
要重新启动上次运行的测试案例,请选择
Debug => Relaunch last,或者按
F10键。
过滤器模式
过滤器模式被用来从测试失败通知中过滤掉不感兴趣的堆栈帧。
图 6. 堆栈过滤器模式
定义过滤器模式
- 从 Application Developer 工具栏中,选择
Window => Preferences。
- 选择
JUnit。
- 右边的窗格将显示堆栈过滤器模式列表。图 6 显示了过滤器模式的列表和输入新的过滤器模式的对话框。
- 想要将新的模式加进列表,请单击
Add。
- 想要从列表中删除模式,请单击
Remove过滤掉失败通知中我们不感兴趣的堆栈帧。
选择
Filter stack trace entries failed tests来过滤已添加的堆栈过滤器模式。取消选择
Filter stack trace entries failed tests来禁用过滤机制。
测试案例方式
测试案例可以在下列两种方式下启动:
图 7. 在 Run 方式下启动测试案例
图 8. 在 Debug 方式下启动测试案例
在前面的示例中,测试案例是在 Run 方式下启动的,如图 7 所示。如果希望看到失败测试案例的详细信息,则需要在 Debug 方式下启动,如图 8 所示。
在 Debug 方式下启动测试案例或测试套件:
- 在 Package Explorer 中选择测试案例或测试套件。
- 单击菜单栏中的 Debug 图标出现一个下拉菜单
。
- 展开
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是设在印度的 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和他联系。
|
对本文的评价
|