JbuilderX使用Junit学习笔记
1.简介
给大家提供一个稍微正式一些的编写JUnit测试文档的手册,明白其中的一些关键术语和概念。但我要声明的是这并不是一本完全的手册,只能认为是一本入门手册。同其他OpenSource的软件有同样的问题,JUnit的文档并没有商业软件文档的那种有规则,简洁和完全。由开发人员编写的文档总是说不太清楚问题,全整的文档需要参考"官方"指南,API手册,邮件讨论组的邮件,甚至包括源代码中及相关的注释。事实上问题并没有那么复杂,除非你有非常特别的要求,否则,只需参考本文你就可以得到所需的大部分信息。
2.安装
JBuilderX中集成JUnit,不用配置ClassPath,就可以使用JUnit,非JBuilderX下的配置,就不在这里敖述了。
3.固定流程
JUnit定义了一个固定的格式建立一个测试用例:
1. implement 一个TestCase的子类。
2. 定义储存状态的公用实例变量。
3. 通过overriding setUp 来初始化公用变量。
4. 通过overriding tearDown在测试后清除初始化。
5. 创建testXXXXX()的测试方法。
6. 一旦你创建了一些测试实例,为了让他们能一起运行。必须定义一个TestSuite。
通过这样一个框架,可以很容易开发出相应地测试类。
4.编写测试用例TestCase
JUnit提供了两个方法,定义在TestCase类中。 protected void setUp() throws java.lang.Exception protected void tearDown() throws java.lang.Exception
覆盖setUp()方法,初始化所有测试的Fixture(你甚至可以在setUp中建立网络连接),将每个测试略有不同的地方在testXXX ()方法中进行配置。
覆盖tearDown(),释放你在setUp()中分配的永久性资源,如数据库连接。
当JUnit执行测试时,它在执行每个testXXX ()方法前都调用setUp(),而在执行每个test testXXX ()方法后都调用tearDown()方法,由此保证了测试不会相互影响。
需要提醒一下,在junit.framework.Assert类中定义了相当多的assert方法,主要有assert(), assert(), assertEquals(), assertNull(), assertSame(), assertTrue(), fail()等方法。如果你需要比较自己定义的类,如Car。assert方法需要你覆盖Object类的equals()方法,以比较两个对象的不同。实践表明:如果你覆盖了Object类的equals()方法,最好也覆盖Object类的hashCode()方法。再进一步,连带Object类的toString()方法也一并覆盖。这样可以使测试结果更具可读性。
一定要保证testXXX ()方法的public属性,否则无法通过内省(reflection)对该测试进行调用。
5.编写集合测试TestSuit
在TestCase类中定义一个静态的suite()方法。suite()方法就像main()方法一样,JUnit用它来执行测试。在suite()方法中,你将测试实例加到一个TestSuite对象中,并返回这个TestSuite对象。一个TestSuite对象可以运行一组测试。TestSuite和TestCase都实现了Test接口(interface),而Test接口定义了运行测试所需的方法。这就允许你用TestCase和TestSuite的组合创建一个TestSuite。
JUnit提供了三种界面来运行测试
[Text UI] junit.textui.TestRunner
[AWT UI] junit.awtui.TestRunner
[Swing UI] junit.swingui.TestRunner
JBuilderX下运行单元测试:
1. 建立一个工程,并添加一个类,例如JUnitStudy.java。
2. 选择Project|Rebuild Project “JunitStudy.jpx”命令,编译工程,这样做可以使工程中的类文件在Test Case向导中可见。
3. 在工程窗口双击JunitStudy.java文件在代码窗口打开。
4. 从Object Gallery对话框中选择Test选项卡,从Test选项卡中选中Test Case图标,然后单击OK按钮,这样JunitStudy.java文件将被作为被测试的类显示在Test Case向导中。
5. 在Test Case向导中选中一个方法。单击Finish按钮,这样一个新的test case,Test TestJunitStudy.java文件就会在代码窗口被打开。
6.添加相应的代码后单击主工具栏中的保存钮,保存工程。
7.在工程窗口右击TestJunitStudy.java文件并从弹出的快捷菜单选择Run Test using TestJunitStudy命令开始运行这个测试类,开发人员可以在消息窗口看到它的运行情况。
8. 如果运行进度显示是红色,表示这个类有错误发生。
<<――创建一个test suit―->>
9. 在TestJunitStudy.java中增加一个新的测试方法,并保存
10.选择File|New 命令,弹出Object Gallery对话框。从中选择Test Suit图标,然后单击ok按钮,弹出Test Suit向导。
11.在向导中选中TestJunitStudy作为一个包含在TestSuit的test case。
12.单击Next,修改Classname为AllTests.java。
13.然后单击Finish,这样AllTests.java就被添加到开发人员的工程中。
14.在工程窗口中右击AllTests.java文件并从弹出的快捷菜单中选择Run Test using AllTests命令开始运行测试类。
参考文献:
1.应用Junit实施单元测试(原创作者:eric )
2.Junit实施 (Java开发者)http://www.neweasier.com/
3.Junit学习笔记(竹笋炒肉)
4.JBuilder基础教程(清华大学)