JUnit是比较常用的测试框架,之前学习过,但是一直没有具体使用过,最近,在学习hibernate时使用到了JUnit进行测试,现在复习巩固一下JUnit的使用方法。
1.如果使用的是Eclipse或者MyEclipse,直接新建IUnit Test Case,会自动提示让引入JUnit的相关jar包.。当然,如果不想用它提供的jar包,也可以从网上下载JUnit的jar包然后导入项目即可。
下图是Eclipse或者MyEclipse自带的JUnit的jar包
2.要进行测试的类为JUnit
package com.baosight.junit; /** * * <p>Title:JUnit </p> * <p>Description:TODO </p> * <p>Company: </p> * @author yuan * @date 2016-4-12 下午9:49:19 */ public class JUnit { /** * 求和 * @Title: add * @Description: TODO * @param x * @param y * @return * @return int * @author yuan * @date 2016-4-12下午9:49:39 */ public int add(int x,int y){ return x+y; } }3.通过1中新建的测试JUnit为JUnitTest
package com.baosight.junit.test; import static org.junit.Assert.*; import static org.hamcrest.Matchers.*; import org.hamcrest.Matchers; import org.junit.Test; import com.baosight.junit.JUnit; /** * <p>Title:IUnitTest </p> * <p>Description:TODO </p> * <p>Company: </p> * @author yuan * @date 2016-4-12 下午9:51:22*/ public class IUnitTest { /** * 测试 * @Title: testAdd * @Description: TODO * @return void * @author yuan * @date 2016-4-12下午9:52:19 */ @Test public void testAdd() { int z = new JUnit().add(3, 5); assertEquals(8, z);//成功 assertThat(z, is(8));//成 assertThat(z, allOf(greaterThan(3),lessThan(9)));//成功 assertThat(z, anyOf(greaterThan(8),lessThan(8)));//失败 } }4.解释一下3中用到的测试方法。JUnit4的测试方法大致分为2类。一类为常规的测试方法,即JUnit.jar中的org.junit.Assert所提供的一系列的方法包括assertEquals、assertArrayEquals、assertNull、assertTrue等。本例中,仅使用了assertEquals进行测试,其中,第一个参数为expected,即期望值;第二个参数为actual,即实际值,只有当二者的值相等时,才会测试通过。另一类为新增加的assertThat方法,第一个参数为actual,即实际值,第二个参数为Matcher类型,类似于正则表达式,需要借助hamcrest的jar包,从网上下载hamcrest的jar包后将hamcrest-core-1.3.jar和hamcrest-library-1.3.jar引入项目。
5.JUnit的执行,直接在类上或方法上或编辑区空白处点击右键,选择Rus as-->JUnit Test即可
6.关于JUnit测试的效果,绿色表示正常,红褐色表示测试不通过,并会给出错误提示
值得一提的是,每个测试方法内可以书写多个测试语句,并且每个测试方法都有一个重载的方法,可以在第一个位置增加一个参数作为提示字符串,这样在测试不通过时就会给出相应的提示。
以上即为JUnit的初步使用,值得一提的是JUnit自动生成的Test Case中使用到了java静态导入功能,即import static org.junit.Assert.*;这样,在使用Assert中的静态方法时就不用再使用Assert.xx,直接使用方法就行了。