概述
一直在写代码,由于时间有限,工作较多,单测覆盖其实不是特别多。
关键代码可能会加上单测。其他的有时间才补单测,大概率是没有太多时间。
补充单测通常是junit和phpunit
最近读了一本书,《构建高质量软件与持续集成》觉得作者对java相关的保证软件质量的工具介绍的挺好的,特意做个个简单笔记分享给大家。其实绝大部分老手只需要一个概要就行。
单元测试是什么?
- 开发编写
- 白盒测试
- 针对源代码进行最细粒度的测试
开发流程
- 分支开发,单元测试,单元测试通过,代码review ,qa测试,发布
为什么需要单元测试?
- 编程过程更加敏捷
- 提高代码质量
- 尽早发现缺陷
- 简化集成测试
- 提供文档帮助
- 易于调试
- 促进开发中优化代码设计和结构
- 降低软件开发成本
单元测试的原则
- 快
- 独立无依赖
- 可重复
- 自我验证
- 周密,细致,全面
junit最佳实践
- 工具:junit4,junit5, mockito,easymock, jmock, testNG,powermock
- 避免操作外部资源和数据
- 不要skip单元测试
- 单元测试不要覆盖所有方法
- 单元测试中必须包含assert操作
- 单元测试和包名一致
- 不要写无意义的单元测试
- 异常不要刻意捕获
- 不要捕获异常什么都不做
- 单元测试也激活日志
- 使用自动化的构建工具
- 对源码的单元测试覆盖率应该到达一定的要求
- 保持小巧,快四执行
- 单元测试同源代码同源代码同样重要
测试驱动开发:编写足够多代码前,优先编写单元测试方法
- 方式
- 红:单测失败
- 绿: 修改单测和代码
- 重构:重新优化代码和增加单测