JUnit初探

JUnit是比较常用的测试框架,之前学习过,但是一直没有具体使用过,最近,在学习hibernate时使用到了JUnit进行测试,现在复习巩固一下JUnit的使用方法。

1.如果使用的是Eclipse或者MyEclipse,直接新建IUnit Test Case,会自动提示让引入JUnit的相关jar包.。当然,如果不想用它提供的jar包,也可以从网上下载JUnit的jar包然后导入项目即可。

下图是Eclipse或者MyEclipse自带的JUnit的jar包


JUnit初探_第1张图片

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即可

JUnit初探_第2张图片

6.关于JUnit测试的效果,绿色表示正常,红褐色表示测试不通过,并会给出错误提示

JUnit初探_第3张图片

JUnit初探_第4张图片

值得一提的是,每个测试方法内可以书写多个测试语句,并且每个测试方法都有一个重载的方法,可以在第一个位置增加一个参数作为提示字符串,这样在测试不通过时就会给出相应的提示。

以上即为JUnit的初步使用,值得一提的是JUnit自动生成的Test Case中使用到了java静态导入功能,即import static org.junit.Assert.*;这样,在使用Assert中的静态方法时就不用再使用Assert.xx,直接使用方法就行了。




你可能感兴趣的:(java,JUnit,hamcrest)