为什么要做测试驱动开发?
1. 我们在开发过程中经常会使用数据库字段, API接口字段(参数), 封装类参数不一致的情况,导致传参或取值错误.
2. 明明要使用静态变量或者final 修饰的, 偏偏使用局部变量,导致值被修改, 与预期结果不符
3. 明明可以使用局部变量, 却为了图方便使用全局变量,导致数据被哪里改写了都知道.
4. 明明可以使用抽象类(接口)或方法去实现, 却偏偏使用普通类实现, 导致到处是复制黏贴, 增加了后期维护成本, 代码可读性差.
5. 一个方法里有超过5个以上的 if..else.... 还有循环里面套循环, 让可读性和性能变差.
6. 数据库里数据提取使用不合理的数据类型, 比如明明可以使用键值对如map, 却偏偏arraylist, 遍历数据效率变差,维护性下降.
7. 算法不合理, 数据结构使用不合理.
8. 不使用缓存, 不考虑并发, 刚开始程序使用没问题,可随着用户量逐渐上升, 弊端逐渐显现出来.
9. 使用不正确SQL语句, 子查询套子查询, 拉低了执行效率
10.抛异常不管三七二十一, 全部使用Error, 这样导致异常无法得到正确处理.
11.没有完善的日志, 后续发生问题无法准确定位到异常现场.
12.不使用配置文件, 想写哪里就写哪里, 给后期二次开发增加难度.
13.没有规范的文档, 命名随意, 想怎么来就怎么来, 别人接手你的代码怎么改? 势必一脸茫然, 无从下手.
14.没有单元测试, 自己都不知道写的类或方法运行后结果与预期是否相符, 在那里反复的调试, 影响项目工期.
15.核心代码没有注释, 别人调用你的类或者方法, 一脸懵逼, 参数是干嘛的全靠猜, 苦不堪言.
这类例子举不胜举, 就不一一举例了.
这些都是陋习, 要改, 要改, 一定要改, 否则没法更上一层楼!
会当凌绝顶,一览众山小 的境界去体会下.
附上TDD测试驱动框架
总结:
测试是一门技术, 更是一门艺术. 也许你今天拥有的技术, 明天就会被淘汰. 同时需要我们开拓思维和眼界, 积极拥抱变化, 学习新知识, 新方法,新技能, 计算机领域讲究的是实践, 学习更要讲究方式方法. 学习和动手一定要结合, 光看不练,犹如看武功秘籍, 是永远成不了武功大侠的.