登录社区云,与社区用户共同成长
邀请您加入社区
测试开发驱动是一种以单元测试为基础的极限编程方法。一下是一个测试示例:
被测的类:
import java.util.StringTokenizer; /* * 日期格式化程序,将输入的日期字符串格式化为MM-DD-YYY * 需求: * 输入为null或者"",输出为"" * 输入只有一个数字的日期或月份,高位补0 * 对于两位数字的年份,高位补20 * 其他,返回"" */ public class DateFormat { public String format(String strUnFormated){ System.out.println(strUnFormated); //输入的字符串 //如果输入为null,返回'' String strTemp=((strUnFormated==null)?"":strUnFormated); if(!strTemp.equals("")){ if(!strTemp.matches("//d{1,2}-//d{1,2}-//d{2,4}")) return ""; StringTokenizer st=new StringTokenizer(strTemp,"-"); String strMM=st.nextToken(); String strDD=st.nextToken(); String strYY=st.nextToken(); if(strMM.length()<2&&Integer.parseInt(strMM)<10){ strMM="0"+strMM; } if(strDD.length()<2&&Integer.parseInt(strDD)<10){ strDD="0"+strDD; } if(strYY.length()<4&&Integer.parseInt(strYY)<100){ strYY="20"+strYY; } strTemp=strMM+"-"+strDD+"-"+strYY; } return strTemp; } }
测试用例:
package cn.csu.unitTest; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; import junit.swingui.TestRunner; import cn.csu.myClass.DateFormat; public class DateFormatTest extends TestCase { private static final String FAILURE_MSG="测试失败"; private DateFormat dateFormat=new DateFormat(); //引入被测试对象,实例化 public static void main(String[] args){ /* * 该方法提供一个JUnit的Swing GUI呈现 */ TestRunner.run(DateFormatTest.class); } public static Test suite(){ TestSuite ts=new TestSuite("测试DateFormat"); /* * JUnit框架TestSuite Class有个特殊的构造函数 * 它接受一个class作为参数,创建出来的test suite会将class内所有以"test" * 开头的方法当做test case包含进来 */ ts.addTestSuite(DateFormatTest.class); return ts; } /* * 根据传入内容显示测试失败的响应信息 */ private String errorMesgTitle(String msgs){ return msgs+" "+FAILURE_MSG; } /* * 测试输入null是否返回'' */ public void testIfNullReturnEmptyStr1(){ assertEquals(errorMesgTitle("输入null返回''"), "",dateFormat.format(null)); } /* * 测试输入''是否返回'' */ public void testIfEmptyReturnEmptyStr2(){ assertEquals(errorMesgTitle("输入''返回''"), "",dateFormat.format("")); } /* * 测试是否给只有一位数字的日期在高位补0 */ public void testAppendZeroSingleD(){ assertEquals(errorMesgTitle("输入一位数字的日期在高位补0"), "11-01-2006",dateFormat.format("11-1-2006")); } /* * 测试是否给只有一位数字的月份在高位补0 */ public void testAppendZeroSingleM(){ assertEquals(errorMesgTitle("输入一位数字的月份在高位补0"), "01-11-2006",dateFormat.format("1-11-2006")); } /* * 测试是否给两位数的年份在高位补20 */ public void testAppend20YearOfYYStyle(){ assertEquals(errorMesgTitle("输入两位数字的年份在高位补20"), "11-01-2006",dateFormat.format("11-01-06")); } /* * 测试输入非法格式 */ public void testCorrectSeparateValue(){ assertEquals(errorMesgTitle("输入非法字符"), "",dateFormat.format("1,1,2006")); } public void testCorrectNumericValue(){ assertEquals(errorMesgTitle("输入非法字符"), "",dateFormat.format("A-B-06")); } /* * 其他测试.... */ }
北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台
更多推荐
deck.gl TripsLayer 出租车轨迹动画示例实战:从示例运行到着色器原理
TripsLayer 是 deck.gl 中用于渲染**随时间流动的轨迹动画**(如出租车行程、物流路径、迁徙路线)的核心图层。本文以仓库中的最小独立示例 [examples/website/trips](https://link.gitcode.com/i/1442af8f442f4cff39ff546e050fceb5) 为骨架,带你完成从安装依赖、启动应用、理解曼哈顿出租车数据格式,到深入
Foundry Anvil 中 eth_simulateV1 的 Blob 交易与 Blob Gas 字段规范化:原理、实现与测试验证
本篇技术指南以 [anvil-simulate-blob-transactions.md](https://link.gitcode.com/i/3d2ebe227262de169335eb290af80da8) 这条 changelog 条目为起点,深入剖析 Foundry Anvil 对 `eth_simulateV1` RPC 返回结果中 blob(EIP-4844)交易与 blob gas
LMCache CLI 实战:用 `lmcache kvcache clear` 管理运行中服务的 KV Cache 状态
本文是一份针对 LMCache 官方 CLI 命令 `lmcache kvcache` 的完整技术指南。该命令用于在**运行中的 LMCache 服务(MP HTTP server)**上管理 KV cache 状态,当前提供 `clear` 子命令,用于清空 L1(CPU 内存)层中缓存的全部 KV 数据。读完本文,你将掌握该命令的完整参数体系、退出码语义、终端/JSON/静默三种输出模式,并能
扫一扫分享内容
为遵守国家网络实名制规定,未绑定将限制内容发布与互动
所有评论(0)