Junit4初体验

上一篇 / 下一篇  2011-12-31 16:16:07

  Junit是用来做测试的,无论是单元测试,还是接口测试,都可以通过调用Junit来验证被调用方法的正确性。当然,要验证一个方法的正确性,还可以采用main方法,通过输出每一个result,人为比对其正确性,但是,它存在两个弊端,一是main方法不能一起运行,假如开发者写的程序有100个类,那么需要对应写100个main方法;二是大多数情况下需要人为的去观察输出结果是否正确,对于一个大的工程,这样做无疑是浪费时间。  

Qk1^F e]K q9bb0

         一般eclipse里自带了Junit包,可以直接引入。如果不想用自带的Junit,可以在Junit的官网上下载,www.junit.org,然后再引入到项目中。Junit4里加入了静态引入的概念,它的好处是在调用该类的方法时,可以直接使用该方法,例如:import static org.junit.Assert.*,那么可以直接使用assertTrue(“must be true”, managerResult.isSuccess()),而不需要Assert.assertTrue(“must be true”, managerResult.isSuccess())。

t+o}AlpeO0

        asserThat,也是Junit4中引入的一个新方法,它可以替代所有的assert,使用方法为assertThat(actual,matcher<T>matcher), 其中,第二个参数可以是正则匹配值,它们更接近自然语言,可读性更高,更灵活。如果想在junit中使用这种方法,需要加载一个hamcrest的包,具体做法是:在项目里,添加外部的jar包,将hamcrest的hamcres-core-1.2.jar和hamcres-library-1.2.jar添加进来即可。这里再列举几个assertThat的一般匹配符的使用:

&KC&? KF t0

      1,assertThat(z,allOf(greaterThan(5),lessThan(10)))         /*z必须满足大于5并且小于10*/

g L s"n P#{0

      2,assertThat(z,anyOf(greaterThan(5),lessThan(10)))      /*z只需要大于5,或者小于10*/51Testing软件测试网B| \6QJp~8V

      3,assertThat(z,anything)                                                    /*z无论是什么都能通过测试*/

+K7S}k*|0

      4,assertThat(z,not(8))                                                                      /*z的值不等于8*/51Testing软件测试网s R3XD)\5T+mR3V

       5,assertThat(z,is(8))                                                                        /*z的值等于8*/

(@YG+Q @0

        此外,Junit4中采用java5中的注解annotation,其中,@test,@ingore,@before,@after,@beforeClass,@afterClass是常用到的几个注解,下面分别对它们做一个简单介绍:

E5OET0_Sv0

        1,@test,表示这是一个需要被执行的测试类;

:s1w7f|2S:bi0

        2,@ingore被忽略的测试方法;51Testing软件测试网(A$pi,r+wM1oKE

        3,@before,@after,分别执行在每一个具体的@test前和后。在运行某些@test时,需要一些先决条件,如执行前需要先打开某个文件,就可以在@before中准备好;51Testing软件测试网] N Y hxZV O-e

         4,@beforeClass,@afterClass,分别执行在所有的测试运行前和后,其中的方法必须是static,因为有可能在类初始化之前就运行了@beforeClass。有的测试类需要在测试前搭配环境,比如与数据库的连接,那么就可以放在@beforeClass中。简而言之,在测试前,需要搭载比较复杂的环境,加载比较费时的连接都可以放在@beforeClass中实现。51Testing软件测试网3pf't#a$`4u

         最后,运行Junit程序未通过的情况有两种,一是failure:指测试失败,比如实际值和预期结果不一致;二是error:指程序本身错误,比如溢出。然后通过查看Junit的具体错误信息,做相应的修改。

b5C7hL {0

TAG:

 

评分:0

我来说两句

Open Toolbar