在一个项目中,程序员天天的工做无非是,将今天须要作得事情从svn服务器中checkout下来,而后运行一遍单元测试,以后开始编写代码,下班时,在运行一次单元测试,而后提交代码,周而复始。java
在一些小公司里,可能并非那么规范,因此也可能不会用到junit,可是大部分比较正规的软件仍是必须的,咱们要作的就是,使本身更专业,作事更流程化、规范化,这才是你要去往的方向。程序员
企业开发一款软件,通常要经历一下几个阶段的测试,单元测试、模块测试、集成测试、压力测试等。测试的内容至关之多,这里咱们就从单元测试开始。服务器
由于如今主要使用的仍是junit4,因此主要讲junit4,下载地址:http://sourceforge.net/projects/junit/ 使用junit的基本原则是:eclipse
一、导入junit的jar,不建议直接使用eclipse中所提供的包。svn
二、在src目录下编写服务代码工具
三、建立测试类单元测试
基本原则: 一、在eclipse中建立一个source folder命名为test测试
二、建立一个测试类所在的包,包的名称和测试的类一致。ui
四、Junit3和Junit4二者之间的区别是很是明显的google
在Junit3中,若是某个类须要是测试类,必须将其继承于TestCase, 若是某个方法须要是测试方法,必须让这个方法经过testXXX开头,在junit3中,若是但愿指定某个测试方法运行以前运行某个初始化方法,这个方法的名称必须是setUp,若是但愿在某个测试方法运行以后运行某个释放资源的方法,这个方法的名称必须是teadDown
在Junit4中,一个POJO类就是一个测试类,测试方法经过@Test来标识,初始化方法经过@Before,释放资源的方法经过@After来标注。可是为了让Junit4中的测试类在Junit3中也可使用,习惯与把初始化方法命名为setUp, 释放资源的方法命名为tearDown,测试方法也一样以test开头。
五、如何使用断言
在junit4中提供了一个Assert的类,这个类中有大量的方法进行断言处理,在junit3中因为继承了TestCase,这个TestCase中提供了大量的assert方法
junit扩展工具hamcrest
下载地址:https://code.google.com/p/hamcrest/downloads/detail?name=hamcrest-1.3.zip
hamcrest能够有效增长junit的测试能力,用一些相对通俗的语言来进行测试
要使用junit中的assertThat来进行断言
第一个参数表示实际值,第二个参数表示hamcrest的表达式
特别注意:若是使用junit4.10,必须把hamcrest的jar包移到junit的jar以前,不然,组合条件allOf,anyOf都会抛出异常。
组合多个测试类,同时测试使用TestSuite
package com.wp.util; import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; @RunWith(Suite.class) @SuiteClasses({ TestA.class, TestB.class, TestCulcuate.class }) public class TestSuite { /* * 测试原则: * 一、建议建立一个专门的source folder --> test来编写测试类代码 * 二、测试类的包应该保持和须要测试的类一致 * 三、测试单元中的每个测试方法都必须能够独立执行,没有顺序 */ }
基本结构就是上面的样子。