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处下载下列文件:
org.junit.zip(使用 org.junit)包含 JUnit 测试框架的插件。org.eclipse.jdt.junit1.0.0.zip(使用 org.eclipse.jdt.junit)包含从 Eclipse 中启动 JUnit 测试并查看测试结果的插件。
- 将以上文件解压缩至 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 视图。
- 打开 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
- 打开 Java 透视图。
- 在前面创建的
SampleJavaProject项目的test.sample包中创建一个名为SampleJavaClassJava 类。 - 在 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()方法,该方法在样本测试案例中使用。
- 打开 Java 透视图。
- 在
SampleJavaProject项目的test.testcase包中创建一个名为SampleJavaTestCaseJava 类。 - 在 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()演示了一个失败测试的输出。
- 打开 Java 透视图。
- 请确保下面两个类编译正确:
test.sample.SampleJavaClasstest.testcase.SampleJavaTestCase
- 在 Packages 视图中,选择测试案例 SampleJavaTestCase。
- 在工具栏中选择 Run => Junit tests。
- 如果 Debug 透视图已打开,请返回 Java 透视图。
- JUnit 视图打开显示测试案例的结果。
提示:当程序以 Run 方式启动时请关闭 Window =>Preferences => Debug => Show Debug perspective选项,这样在执行过测试案例后就不会再显示 Debug 透视图。
当您运行测试案例时,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 透视图。
浙公网安备 33010602011771号