`

1、junit学习之junit的基本介绍

阅读更多

Junit目前在一些大的公司或者相对规范的软件中使用的比较多,相当多的小公司并没有把单元测试看的太重要。在大点的公司开发人员每天上班后,第一件事情就是从svn上把自己负责的代码checkout下来,然后运行单元测试,如果单元测试通过,那么说明自己的代码没有问题,然后就在代码块上修改与添加,完成后再用junit进行测试,测试完成后如果没有问题,那么就把相应的代码块提交给svn上。

测试一般分为:单元测试、集成测试(主要看一块代码加进去后,系统会不会有问题)、验收测试和压力测试。

 

在以前的的项目中也用过Junit,当时的使用只是把Junit当成一个有多个main方法的一个函数。假如一个项目非常的大,测试的东西非常的多,如果不用Junit的话,那么这个工作量是非常大的。单元测试的最基本的一个功能是能进行自动化测试。单元测试都是通过断言的方式来确定结果是否正确,即使用Assert。

 

1、从网站上下载junit的新版本,http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22junit%22%20AND%20a%3A%22junit%22 上下载相应的版本,这里下载的是junit4.10

2、在myeclipse中新建一个java项目,名称为junit01,并在新建一个文件夹,名称为lib,把上面下载的junit-4.10复制到里面,并build path,即添加到类路径中,如下图所示:


 3、新建一个类Calcuate,其功能主要实现加减乘除,如下图所示,其所在的包为cn.whp.util

 

4、创建上面的类Calcuate中新建测试类,首先在myeclipse中创建一个source folder,将其命名成test,然后在其下创建一个与类Calcuate类在相同包的包,如下图所示:

 


5、junit3与junit4的区别还是比较明显的,在junit3中,如果某个类是测试类,必须将其继承类TestCase,如果某个方法是测试方法,必须让这个方法以testXX开头,如果希望指定某个测试方法运行之前运行某个初始化方法,这个方法的名称必须是setUp,如果希望在某个测试方法运行之后运行某个释放资源的方法,这个方法的名称必须是tearDown。

在junit4中,一个POJO类就是一个测试类,测试方法通过@Test来标识,初始化方法通过@Before来标识,释放资源的方法通过@After来标识,但是为了让junit4的测试类在junit3中也可以使用,习惯于把初始化方法命名为setUp,释放资源的方法命名为tearDown。Test中的测试方法一般以Test来开始。其中标识为Before注解的方法,每次运行测试类,都会执行标识为@After与@Before的方法。如下图所示:


6、在junit4中提供了一个Assert的类,这个类中有大量的静态方法进行断言的处理,在junit3中由于继承了TestCase,这个TestCase就可以直接assert,而junit4中需要先引入Assert类。如下图:

 在上图中使用了Assert类中的assertEquals方法,这方法的第一个参数意思是:如果方法cal.add(12,22)计算的结果不为34,那么就会打印出“加法有问题”的信息。第二个参数为方法cal.add(12,22)的执行结果,第三个参数是开发人员预计的函数cal.add(12,22)执行后的结果,这里预计12与22相加后其结果为34,如果在执行测试方法后,rel不等于34,那么就会报加法有问题。如果结果等于34,那么这个方法就测试通过。把上图中最后一个参数的值34改成35,那么执行junit测试后将会出现如下错误:

 如果想让上面的测试类可以在junit3中运行,可以把Assert类静态的导入,这样在调用每个静态方法时,就不用都写上Assert类了,如下图所示:


 然后把所有别的测试方法补全,使用junit测试比使用main方法测试有很大的不同的,每个标识为@Test的方法都是一个可运行的方法,并且他们之间互不影响,例如testAddd方法出现问题了,并不影响testMinus方法的运行。这就是单元测试的好处,如下图: 

7、在测试除法cal.divide(3,0),如果除数为0,这个方法应该会抛出异常。现在的测试目标是,如果运行测试方法后,测试方法没有抛出异常,那么这个测试方法就不能通过。这时就需要用到junit的ArithmeticException。如下图所示:


 

这里如果把cal.divide(20,0)改成cal.divide(20,10),这样divide是没有问题的,但是这时测试类中的testDivideException方法执行junit测试后就不能通过了,因为这个测试方法已经断言所要测试的方法divide要抛出异常,结果没有抛出异常,所以junit测试是不能通过的。如下图所示:

 测试结果提示,应该抛出一个异常,结果没有抛出异常。

 

8、有时在测试时需要有这样的需求,就是对一个方法的时间进行测试,例如,要让一个方法,200毫秒里运行完,如果这个方法200毫秒不能运行完,那么这个方法就应该抛出异常,示例中将方法time中线程沉睡300毫秒,那么这个方法就不可能在200毫秒内完成,所以这个方法就会抛出异常。这就可以做一些方法性能上的测试,把Thread去掉,那么这个测试就可正常通过。如下图所示: 

 

 10、Junit的最基本的东西基本是这样的,断言、测试异常,捕获异常,测试方法的性能。例子代码在附件中。 

  • 大小: 7.7 KB
  • 大小: 118.9 KB
  • 大小: 110.6 KB
  • 大小: 107.1 KB
  • 大小: 113.6 KB
  • 大小: 113.1 KB
  • 大小: 90.2 KB
  • 大小: 120.9 KB
  • 大小: 34.2 KB
  • 大小: 127.4 KB
  • 大小: 133.6 KB
18
1
分享到:
评论
10 楼 Zhouchenyu 2017-03-03  
谢谢
9 楼 wenjieyatou 2016-12-04  
 
8 楼 huabengao 2016-04-07  
不错  很好
7 楼 prayjourney 2016-04-01  
写的不错,很有启发!
6 楼 wangzhenyu1260 2016-02-24  
assertEquals
public static void assertEquals(String message,
                                long expected,
                                long actual)
5 楼 chenquanfu123456 2016-01-12  
  写的非常好。借鉴一下
4 楼 国仔饼 2015-11-23  
3 楼 mxpl88 2015-10-26  
2 楼 whmwg 2015-09-15  
1 楼 ok123zxx 2015-08-24  
写得好

相关推荐

    JUnit学习资料JUnit学习资料

    JUnit学习资料

    JUNIT介绍JUNIT介绍

    JUNIT介绍.JUNIT介绍.JUNIT介绍.JUNIT介绍.

    Junit学习.rar

    中间有各种Junit文档,Junit各种操作手册!3.8--4.9。还有本人学习的笔记。绝对值得下载。

    junit关于junit的介绍

    关于junit的介绍 关于关于junit的介绍关于junit的介绍关于junit的介绍关于junit的介绍关于junit的介绍关于junit的介绍

    junit4学习文档

    junit4学习文档,有实例,非常详细,不懂的可以参考

    junit ppt 学习文档.ppt

    junit ppt 学习文档.ppt junit ppt 学习文档.ppt junit ppt 学习文档.ppt

    junit ppt 学习文档

    junit ppt 学习文档,详细junit介绍,深入浅出

    junit学习文档

    junit 3,junit 4学习

    Junit学习笔记~

    Junit学习笔记,希望有用~~~~~~~~~~~~~~~~~~~~~~

    junit5.rar包含JUnit Platform + JUnit Jupiter + JUnit Vintage依赖jar包

    JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage,包含依赖包:junit-jupiter-5.5.1.jar,junit-jupiter-engine-5.5.1.jar,junit-jupiter-params-5.5.1.jar,junit-platform-launcher-1.5.1.jar,junit-...

    JUnit学习笔记JUnit学习笔记JUnit学习笔记

    JUnit是一款由Erich Gamma(《设计模式》的作者)和Kent Beck(极限编程的提出者)编写的开源的回归测试框架,供Java编码人员做单元测试之用。当前版本4.1,可以从www.junit.org网站上获得。与早期的JUnit 3相比,...

    junit5学习入门

    • JUnit 是一个开放的资源框架,用于编写和运行测试。 • 提供注释来识别测试方法。 • 提供断言来测试预期结果。 • 提供测试运行来运行测试。 • JUnit 测试允许你编写代码更快,并能提高质量。 • JUnit 优雅...

    junit基本介绍,junit常用的接口和类,如何编写测试代码

    junit基本介绍,junit常用的接口和类,如何编写测试代码,需要注意的几个问题

    Junit学习资料

    Junit学习资料

    junit4.1 junit4.1

    junit4.1junit4.1junit4.1junit4.1junit4.1

    junit的jar包

    Files contained in junit4-4.8.2.jar: LICENSE.txt META-INF/MANIFEST.MF junit.extensions.ActiveTestSuite.class junit.extensions.RepeatedTest.class junit.extensions.TestDecorator.class junit.extensions...

    JUnit如何使用介绍

    1, 从junit.org官方网站或其他途径下载你需要版本的JUnit包。 2, 把你下载的包释放在自己电脑的某个目录。(比如:D:\java) 3, 把你释放文件中的如:org.junit4_4.3.1文件拷贝Eclipse的\plugins目录下,如果你的...

    Junit学习文档

    本文档和网络上的差不多,但加了一个自己写的示例,和一些心得,对于只要使用junit的人来说(主要是junit4) 本文档已经足够了,这个文档也是我对我们公司整个开发团队junit的培训文档。传上来给大家参考参考,有些...

    JUnit学习资料

    包括JUnit.in.Action中文版.pdf,JUnit详解.pdf,Manning - JUnit in Action.pdf,单元测试之道Java版:使用JUnit.pdf以及Junit设计模式分析(Junit设计模式分析.pdf及源码实例),是学习JUnit不可多得的资料。

Global site tag (gtag.js) - Google Analytics