图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 ![](https://img-blog.csdnimg.cn/direct/743e8e47db584226a96bc931b0d6e44f.png)
图10
最后结果如图11
图11
开始编写代码测试,先在src里新建一个java文件如图12、图13所示
图12
![](https://img-blog.csdnimg.cn/direct/a26f417c5aed4bfb8a439be795d65d77.png)
图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
![](https://img-blog.csdnimg.cn/direct/e095788dfab54d2dad70b84f577399e2.png)
图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
版权归原作者 m0_62791845 所有, 如有侵权,请联系我们删除。