Junit是用来做测试的,无论是单元测试,还是接口测试,都可以通过调用Junit来验证被调用方法的正确性。当然,要验证一个方法的正确性,还可以采用main方法,通过输出每一个result,人为比对其正确性,但是,它存在两个弊端,一是main方法不能一起运行,假如开发者写的程序有100个类,那么需要对应写100个main方法;二是大多数情况下需要人为的去观察输出结果是否正确,对于一个大的工程,这样做无疑是浪费时间。 一般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())。 asserThat,也是Junit4中引入的一个新方法,它可以替代所有的assert,使用方法为assertThat(actual,matchermatcher), 其中,第二个参数可以是正则匹配值,它们更接近自然语言,可读性更高,更灵活。如果想在junit中使用这种方法,需要加载一个hamcrest的包,具体做法是:在项目里,添加外部的jar包,将hamcrest的hamcres-core-1.2.jar和hamcres-library-1.2.jar添加进来即可。这里再列举几个assertThat的一般匹配符的使用: 1,assertThat(z,allOf(greaterThan(5),lessThan(10))) /*z必须满足大于5并且小于10*/ 2,assertThat(z,anyOf(greaterThan(5),lessThan(10))) /*z只需要大于5,或者小于10*/ 3,assertThat(z,anything) /*z无论是什么都能通过测试*/ 4,assertThat(z,not(8)) /*z的值不等于8*/ 5,assertThat(z,is(8)) /*z的值等于8*/ 此外,Junit4中采用java5中的注解annotation,其中,@test,@ingore,@before,@after,@beforeClass,@afterClass是常用到的几个注解,下面分别对它们做一个简单介绍: 1,@test,表示这是一个需要被执行的测试类; 2,@ingore被忽略的测试方法; 3,@before,@after,分别执行在每一个具体的@test前和后。在运行某些@test时,需要一些先决条件,如执行前需要先打开某个文件,就可以在@before中准备好; 4,@beforeClass,@afterClass,分别执行在所有的测试运行前和后,其中的方法必须是static,因为有可能在类初始化之前就运行了@beforeClass。有的测试类需要在测试前搭配环境,比如与数据库的连接,那么就可以放在@beforeClass中。简而言之,在测试前,需要搭载比较复杂的环境,加载比较费时的连接都可以放在@beforeClass中实现。 最后,运行Junit程序未通过的情况有两种,一是failure:指测试失败,比如实际值和预期结果不一致;二是error:指程序本身错误,比如溢出。然后通过查看Junit的具体错误信息,做相应的修改。 转载务必注明出处Taobao QA Team,原文地址:http://qa.taobao.com/?p=13758

最新文章

  1. Python黑帽编程 3.5 DTP攻击
  2. TCP的阻塞和重传机制
  3. ACM: FZU 2102 Solve equation - 手速题
  4. Generics and Collection (1)
  5. Unity3d 引擎原理详细介绍
  6. 【JAVA、C++】LeetCode 018 4Sum
  7. Objective-C(二、类和对象)
  8. C: Answers to “The C programming language, Edition 2”
  9. 存储过程中“Select Top 变量”的问题如何解决
  10. IOS 学习日志 2015-3-13
  11. SGU 167.I-country
  12. 第三届蓝桥杯 c/c++真题
  13. 动态接口服务 webservice
  14. 正则语言引擎:一个简单LEX和YACC结合运用的实例
  15. [OC] 富文本 AttributedString 以及 用富文本解析html文本
  16. 关于crontab
  17. 撩课-Java每天5道面试题第17天
  18. Makefile introduction (very old presentation)
  19. PHP抽象方法、抽象类以及接口
  20. Hexo初体验

热门文章

  1. 扩展gridview轻松实现冻结行和列
  2. OpenCV 64位时 应用程序无法正常启动0x000007b 问题解决
  3. SeaJS入门
  4. [Android Traffic] 看无线电波如何影响网络操作]
  5. Linux GPRS模块问题
  6. ISP图像调试工程师——边缘增强(熟悉图像预处理和后处理技术)
  7. http://zhidao.baidu.com/link?url=3tJ_i5gyYLrd7rFPk0eRYre_oxjCZvTOMOutp89LGhUgi6Ic6Ncama_GMAHnwfF73SVYGqy364vDfv6AY4ERPa
  8. prometheus的坑
  9. How to backup a remote PostgreSQL db and restore it locally?
  10. Android基础新手教程——4.1.3 Activity登堂入室