【转】Junit初体验
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
【转】Junit初体验的更多相关文章
- Junit初体验
JUnit是一个开源的Java单元测试框架,由 Erich Gamma 和 Kent Beck 开发完成. 主要是为了方便开发人员在自己开发的过程中能够及时的发现和解决bug用的,一方面自己可以通过单 ...
- protobuf初体验
概念介绍 Protocol buffers 是google公司的与语言无关.与平台无关的.可扩张的为序列化话结构数据,就像xml一样,办事更加的小巧.快速.简单.Protocol buffers 目前 ...
- junit4初体验
OK,现在我们正式开始junit4系列的整理.前面的junit38作为4的补充知道就好了,实际编码中我们以4为主.这里先来一把junit的初体验,同时也让我们来一步一步的了解下TDD的好处. ORM大 ...
- hibernate--CRUD初体验
hibernate的crud操作初体验. 看具体实例 package com.fuwh.model; import javax.persistence.Column; import javax.per ...
- Android开发学习之路--百度地图之初体验
手机都有gps和网络,通过gps或者网络可以定位到自己,然后通过百度,腾讯啊之类的地图可以显示我们的地理位置.这里学习下百度地图的使用.首先就是要申请开发者了,这个详细就不多讲了.http://dev ...
- Spring JDBCTemplate连接SQL Server之初体验
前言 在没有任何框架的帮助下我们操作数据库都是用jdbc,耗时耗力,那么有了Spring,我们则不用重复造轮子了,先来试试Spring JDBC增删改查,其中关键就是构造JdbcTemplate类. ...
- SSH初体验系列--Hibernate--2--crud操作
Ok,今天比较详细的学习一下hibernate的C(create).R(read).U(update).D(delete) 相关api... 前言 Session: 是Hibernate持久化操作的基 ...
- .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...
- Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验
Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...
随机推荐
- 理解面向对象编程---C#控制台实现52张扑克牌的分法
52张牌随机分给4个玩家,要求每个玩家的牌用一个一维数组表示. 我们采用模拟大法.初始化一副扑克牌,洗牌,发牌. using System; using System.Collections.Gene ...
- Oracle API Gateway SOAP到REST协议转换
1.SOAP到REST协议转换 打开policystudio,加入一个policy Container. 搜索extract rest 设置成为start 搜索set message,将url中的变量 ...
- 腾讯云linux服务器分区方案
刚刚在腾讯云买了一台服务器,刚买的服务器的数据盘都是需要自己来分区的,下面就记录一下操作. 通过命令fdisk-l查看硬盘信息 可以看到有两块硬盘/dev/vda和/dev/vdb,启动vda是系统盘 ...
- 鸟哥的linux私房菜服务器架设篇第五章linux常用网络指令
ifconfig主要可以手动启动观察修改网络接口的相关参数 ifdown,ifup用来启动和关闭接口,后面直接接接口名称 两部主机两点沟通:ping 两主机之间各节点分析 traceroute 查看本 ...
- display:table合并表格
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- SpringMvc(注解)上传文件的简单例子
spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方1.form的enctype=”multipart/form-data” 这个是上传文件必须的2.applicationConte ...
- 支付宝支付系统繁忙,请稍后再试(ALI64)错误解决
解决方法:将商户支付參数的seller邮箱换成与partner同样的数字串,依然无法支付请检查所给參数
- 一起talk C栗子吧(第二十二回:C语言实例--队列一)
各位看官们,大家好,上一回中咱们说的是表达式求值的样例,该样例使用了栈,这一回咱们说的是栈的 兄弟:队列. 闲话休提,言归正转.让我们一起talk C栗子吧. 我们在这里说的队列是一种抽象的数据结构, ...
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-人机界面快速入门 TC3
右击添加一个PLC项,注意不要用中文 右击VISUs,添加一个视图对象 在POUs中打开MAIN,然后添加代码(定义了一个BOOL和一个INT类型变量) 工具箱中得到一个textfield ...
- selenuim-webdriver注解之@FindBy、@FindBys、@FindAll的区别
selenium-webdriver中获取页面元素的方式有很多,使用注解获取页面元素是其中一种途径, 方式有3种:@FindBy.@FindBys.@FindAll.下文对3中类型的区别和使用场景进行 ...