eclipse中用junit进行单元测试

本文详细介绍了如何在Java项目中添加JUnit库,配置JavaBuildPath,创建测试用例,并通过单元测试验证WordDealUtil类的功能。最终解决了null和首字母大写情况下的测试问题。
摘要由CSDN通过智能技术生成

                                         图1

然后点击"Next",找到"Libraries",选择"Add Library"如图2

                                            图2

选择"JUnit",点击"next",版本选择"JUnit4",点击"Finish" 如图3、图4所示

                                            图3

 

                                              图4

右键项目名,找到"Properties",选择"Java Build Path",找到"Source",如图5、图6所示

                                      图5

                                                              图6

点击"Add Folder"新建一个文件夹,点击"Create New Floder“,输入名称如图7、图8所示     

                                      图7

    

                                             图8

依次点击”Finish","OK","OK"如图9,图10     

                                              图9  

                                                          图10

最后结果如图11

                                               图11

开始编写代码测试,先在src里新建一个java文件如图12、图13所示

                                                     图12

    

                                                      图13

点击"Finish"后,编写如下代码。

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

public class WordDealUtil {
		/**
		 * 将Java对象名称(每个单词的头字母大写)按照
		 * 数据库命名的习惯进行格式化
		 * 格式化后的数据为小写字母,并且使用下划线分割命名单词
		 * 
		 * 例如:employeeInfo 经过格式化之后变为 employee_info
		 * 
		 * @param name Java对象名称
		 */
	 public static String wordFormat4DB(String name){
			Pattern p = Pattern.compile("[A-Z]");
			Matcher m = p.matcher(name);
			StringBuffer strBuffer = new StringBuffer();
			
			while(m.find()){
				//将当前匹配子串替换为指定字符串,
				//并且将替换后的子串以及其之前到上次匹配子串之后的字符串段添加到一个StringBuffer对象里
				m.appendReplacement(strBuffer, "_"+m.group());
			}
			//将最后一次匹配工作后剩余的字符串添加到一个StringBuffer对象里
			return m.appendTail(strBuffer).toString().toLowerCase();
		}

	}

 右键Java文件名,选择"New",找到"JUnit Test Case",把"Source folder"的路径通过"Browse"改成前面所新建的"testsrc"文件夹如图14,图15所示

                                                        图14           

    

                                                 图15

点击"Next",选择要测试的函数,再点击"Finish"。如图16所示

   

                                          图16

在新建的"JUnit test case"的文件中编写如下代码,对前面编写的代码进行测试。

import static org.junit.Assert.*;
import org.junit.Test;
public class WordDealUtilTest {
	
	@Test
	public void testWordFormat4DB() {
		String target = "employeeInfo";
		String result = WordDealUtil.wordFormat4DB(target);
		
		assertEquals("employee_info", result);
	}
	//测试 null 时的处理情况
		@Test
		public void wordFormat4DBNull(){
			String target = null;
			String result = WordDealUtil.wordFormat4DB(target);
			
			assertNull(result);
		}
		
		//测试空字符串的处理情况
		@Test 
		public void wordFormat4DBEmpty(){
			String target = "";
			String result = WordDealUtil.wordFormat4DB(target);
			
			assertEquals("", result);
		}

		//测试当首字母大写时的情况
		@Test 
		public void wordFormat4DBegin(){
			String target = "EmployeeInfo";
			String result = WordDealUtil.wordFormat4DB(target);
			
			assertEquals("employee_info", result);
		}
		
		//测试当尾字母为大写时的情况
		@Test public void wordFormat4DBEnd(){
			String target = "employeeInfoA";
			String result = WordDealUtil.wordFormat4DB(target);
			
			assertEquals("employee_info_a", result);
		}
		
		//测试多个相连字母大写时的情况
		@Test 
		public void wordFormat4DBTogether(){
			String target = "employeeAInfo";
			String result = WordDealUtil.wordFormat4DB(target);
			
			assertEquals("employee_a_info", result);
		}
	
}

然后对此时编写好的"JUnit test case"文件进行运行,可以右键文件,找到"run as",选择"JUnit Test"如图17

                                           图17

查看运行结果如图18

                                          图18

注意到有两个样例未通过,分别是null和首字母大写情况。因此我们需要返回原代码修改被测试代码使之通过测试。修改后代码如下。

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

public class WordDealUtil {
		/**
		 * 将Java对象名称(每个单词的头字母大写)按照
		 * 数据库命名的习惯进行格式化
		 * 格式化后的数据为小写字母,并且使用下划线分割命名单词
		 * 
		 * 例如:employeeInfo 经过格式化之后变为 employee_info
		 * 
		 * @param name Java对象名称
		 */
public static String wordFormat4DB(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()).toLowerCase());
		}
		return m.appendTail(sb).toString().toLowerCase();
	}
}

 然后重新运行那个"JUnit test Case"文件即"wordDealutilTest.java"文件,即可出现全部测试通过情况。如图19。

                                       图19

  • 15
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值