天天看点

JUnit单元测试工具

1.junit4快速入门

1.1 junit4的简洁:

    junit4的官网(junit.org)有详细定义:junit is a simple framework to write repeatable tests.it is an instance of the xunit architecture for unit testing framework.意思是:junit是一个用于编写可复用测试集的简单框架,它是xunit的子集。那么xunit是什么呢?xunit是一套基于测试驱动开发的测试框架。使我们能够快速的写单元测试。xunit的家族成员众多,其中包括python的单元测试pythonunit,面向c++的cppunit以及用于java测试的junit等。

junit托管在github上,网址为http://github.com/junit-team/junit/wiki/download-adn-install,junit有两个包,分别是junit.jar和hamcrest-core.jar。

1.2 junit3和junit4的区别:

    ①junit4所有的测试方法前用@test注释,junit3的测试方法必须是以test作为前缀。

    ②junit3必须继承junit.framework.testcasel类,而junit4不需要继承任何类

    ③另外,junit3初始化资源的方法必须命名为setup,测试结束后,释放资源的方法必须命名为teardown,而junit4完全没有限制

1.3 我们为什么要使用junit呢?

    使用断言机制,将期望的结果跟运行的结果比对,给出测试结果。方便、高效、分离。

1.4 如何开发测试用例

    工具:eclipse,由于eclipse包含了junit4,所以不再单独下载。

    首先贴一下代码结构图:

JUnit单元测试工具

    ①新建一个java project,命名为junit4demo;

    ②在src上,创建一个新的包:com.mac.unit;

    ③写一个用于被测试的类,在包com.mac.unit下,命名为calculator,该类有四个方法,进行加减乘除运算;

    ④接下来,我们导入junit包,在项目上,单击右键,build path->add library->junit->next->选择junit4->finish.这样,在项目的树状结构中就能看到junit4的文件夹。

    ⑤新建测试类,在当前包中,new ->junit test case,命名为calculatortest。这个测试类会自动生成一个模板,我们仿照它写一个我们自己的测试方法。

    添加我们的方法,并将test方法删除: 

    ⑥运行上面这个测试类calculatortest,右键->run as ->junit test.运行结果如下图:

JUnit单元测试工具

扩展一下:

介绍一下junit视图:

runs:表示测试正确执行的方法

errors:表示错误的方法

failures:表示期望结果跟测试结果不相同的方法

绿色的状态条表示正常执行,红色的状态条表示出现错误或者异常。

包下面的方法前面有绿色对号,表示正常执行,否则就是出现错误或者出现异常的方法。

2.junit4使用详解

2.1 junit4最佳实践

    在快速入门中,将测试代码和被测试代码放在同一个包下面,显然这样做不合理,测试代码孩子是在开发时用到,在产品中是不会出现的,因此,需要优化代码结构。

    在项目的下面新建一个源文件夹(source folder)test,将测试代码全部放在test下面,这样做得目的是源代码和测试代码分离,并且查阅方便。

在产品最终发布是,将该目录删除即可,不会对项目产生任何影响。

    注意:测试包名和被测试代码包名必须相同。

JUnit单元测试工具

进一步完善测试代码:

 测试结果:

JUnit单元测试工具

juint的使用技巧:

①如果我们只想对某个方法进行测试,只需要打开测试代码的树状结构,选中要测试的方法,右键->run as->junit test即可。

JUnit单元测试工具

②现在假设我们有很多类,类又有很多方法,我们一个一个的敲出来,这个有点庞大,那么,可否有简单的方法呢?答案是肯定。

在项目名称(假如我的项目是junit4demo)上右键->new->other->在选择向导中输入“junit”->选择junit test case(其实就在java->junit->junit test case)->next,在source folder中选择test,name为calculatortest3,class under test选择被测试的类(com.mac.unit.calculator),然后next,选择要被测试类要测试的方法,然后finish。

JUnit单元测试工具
JUnit单元测试工具

以上操作生成的代码如下:

#calculatortest3.java

框架代码已经生成,那么接下来就需要自己去实现测试的逻辑。

本例中的逻辑代码,即测试代码如2.1中最佳实践中优化完善的代码一样,此处就不做展示。

③最简单的生成测试代码:右键选中被测试的类,new->junit test case,在junit testcase窗口中,选择new junit 4 test,source folder选择test源文件,如下图所示:

JUnit单元测试工具

下面就和②一样了。

ps: (1).测试方法上必须使用@test进行修饰

      (2).测试服昂发必须使用public void 进行修饰,不能带任何的参数

      (3).新建一个源代码目录来存放我们的测试代码 

      (4).测试类的包应该和被测试类的包保持一致

      (5).测试单元中的每个方法必须可以独立测试,测试方法间不能有任何依赖

      (6).测试类使用test作为类名的后缀(不是必须的)

      (7).测试方法使用test作为方法名的前缀(不是必须的)

3.junit4的深入使用

4.junit4在web项目中的使用