扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共4页)
4 完成测试
如上所示,前5个测试案例已通过了检测,证明逻辑没有问题。通过研究测试案例发现,是由于不符合最后的要求即测试该程序是否在输入了其他不符合MM-DD-YYYY格式的任意字符串时(如输入字母,或者非“-“的分隔符等情况) 返回”“,没有达到这个需求,而导致了错误,那么试着修改MyFormatter源代码,在代码清单3中这个地方16行把注释去掉://if (!strTemp.matches("\\d{1,2}-\\d{1,2}-\\d{2,4}")) return "";,即使用正则表达进行验证。
这一次JUnit测试完全通过,如下图所示:
至此,TDD的前4个步骤已经完成了,最后一步的重构主要就是改善代码结构,剔除冗余,优化性能等,这不在本话题之内所以不作展开。当然,重构完成后需要重新运行一下整个测试,确认测试结果是绿灯以后,那么完成了一次TDD的实践。
总结
这是一个并不复杂的例子,但已经可以开始看出部分写单元测试的好处:
1、保证了类的功能是被实现的,满足几种情况下,如将来出现新的情况时再补充。
2、重构时不怕重构会产生新的问题。
3、对集成测试有保证。
4、保证了写出来的类是符合需求的。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者