Junit框架使用(1)--基本使用

        JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。

        JUnit是Java开发中使用最多的测试框架之一。

        本系列文章讲的所有内容都是基于Maven3+JUnit4.11,要使用JUnit只需要将JUnit的jar包引入到项目中即可。

首先写要测试的类

package com.tiamaes.junit;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author 王成委
 *
 */
public class WordDealUtil {
	
	/**
	 * 将Java对象名称格式化成数据库格式
	 * @param name Java对象名称
	 * @return
	 */
	
	public static String wordFomat4DB(String name){
		
		
		Pattern p = Pattern.compile("[A-Z]");
		Matcher m = p.matcher(name);
		StringBuffer sb = new StringBuffer();
		
		while(m.find()){
			System.out.println(m.group());
			m.appendReplacement(sb, "_"+m.group());
		}
		
		return m.appendTail(sb).toString().toUpperCase();
	}
}
下面写测试用例

package com.tiamaes.junit;

import static org.junit.Assert.*;

import org.junit.Test;
/**
 * WordDealUtil测试用例
 * @author 王成委
 *
 */
public class WordDealUtilTest {

	/**
	 * 正常情况
	 */
	@Test
	public void testWordFomat4DB() {
		String target = "employeeInfo";
		String result = WordDealUtil.wordFomat4DB(target);
		assertEquals("EMPLOYEE_INFO", result);
	}
	
	/**
	 * 参数为null
	 */
	@Test
	public void wordFormat4DBNull(){
		String result = WordDealUtil.wordFomat4DB(null);
		assertNull(result);
	}
	
	/**
	 * 空字符串
	 */
	@Test
	public void wordFormat4DBEmpty(){
		String result = WordDealUtil.wordFomat4DB("");
		assertEquals("", result);
	}
	
	/**
	 * 首字母大写
	 */
	@Test
	public void wordFormat4DBBegin(){
		String target = "EmployeeInfo";
		String result = WordDealUtil.wordFomat4DB(target);
		assertEquals("EMPLOYEE_INFO", result);
	}
	
	/**
	 * 尾字母大写
	 */
	@Test
	public void wordFormat4DBEnd(){
		String target = "EmployeeInfoA";
		String result = WordDealUtil.wordFomat4DB(target);
		assertEquals("EMPLOYEE_INFO_A", result);
	}
	
	/**
	 * 多个大写字母相连
	 */
	public void wordFormat4DBTogether(){
		String target = "EmployeeAInfo";
		String result = WordDealUtil.wordFomat4DB(target);
		assertEquals("EMPLOYEE_A_INFO", result);
	}

}
测试方法只需在方法上加上@Test注释就可以了,assertEquals方法有两个参数第一个是期望值,第二个是实际结果。
运行测试用例之后发现wordFormat4DBNull和wordFormat4DBBegin方法失败,即空参数和首字母大写的没有通过测试,然后修改方法,加上null判断和首字母大写判断,如下

	/**
	 * 将Java对象名称格式化成数据库格式
	 * @param name Java对象名称
	 * @return
	 */
	public static String wordFomat4DB(String name){
		
		/**********************************************/
		if(name == null) return null;
		/**********************************************/
		
		Pattern p = Pattern.compile("[A-Z]");
		Matcher m = p.matcher(name);
		StringBuffer sb = new StringBuffer();
		
		while(m.find()){
			/**********************************************/
			if(m.start() != 0) {
				m.appendReplacement(sb, "_"+m.group());
			};
			/**********************************************/
		}
		
		return m.appendTail(sb).toString().toUpperCase();
	}
再运行测试用例,这次测试通过,现在的代码已经比较稳定,可以提供给其他模块使用了。如果对此方法进行了修改或优化,只需要运行一次测试用例就可以知道方法是否正常。

在写测试用例时要尽量考虑到业务中可能出现的情况,是测试用例更加完善。





你可能感兴趣的:(Junit4)