扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共4页)
2 执行测试
清单2中的代码根据需求规格撰写了详细的测试案例脚本。这个测试类需要继承JUnit框架的TestCase类。Junit提供的assert方法使得期望值和实际值之间的比较变得很直观,现在有了7个测试方法,执行测试的结果,如下图所示:

JUnit测试结果画面上的红线表示存在至少一个测试未通过,本例是所有测试均失败。
3 修改代码
修改代码的目标是使得失败的测试全部通过,可以按照以上7个失败方法依次修改,各个突破。最终测试结果画面亮起绿灯,表示编写的脚本已经一致通过,无需再修改代码了。如下图为还未通过最后两项测试的MyFormatter测试效果图。

此时的测试对象代码如清单3所示:
清单3
import java.util.StringTokenizer;

/** *//**
* 日期格式化程序,将输入的日期字符串格式化为MM-DD-YYYY的形式
*
*/
public class MyFormatter ...{
public static String formatDate(String strUnFormatted) ...{
//如果输入字符串为null,返回""
String strTemp = ((strUnFormatted == null) ? "" : strUnFormatted);

if (!strTemp.equals("")) ...{
//if (!strTemp.matches("\d{1,2}-\d{1,2}-\d{2,4}")) return "";
//使用StringTokenizer,依照"-"来分隔输入字符串
StringTokenizer st = new StringTokenizer(strTemp, "-");
//分别取得年月日
String strMM = st.nextToken();
String strDD = st.nextToken();
String strYYYY = st.nextToken();

if (strMM.length() < 2 && Integer.parseInt(strMM) < 10) ...{
//给只有一位数字的月份在高位补一个0
strMM = "0" + strMM;
}

if (strDD.length() < 2 && Integer.parseInt(strDD) < 10) ...{
//给只有一位数字的日期在高位补一个0
strDD = "0" + strDD;
}

if (strYYYY.length() < 4 && Integer.parseInt(strYYYY) < 100) ...{
//给两位数字的年份的高位补上20
strYYYY = "20" + strYYYY;
}
strTemp = strMM + "-" + strDD + "-" + strYYYY;
}
return strTemp;
}
}如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。