-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
Description
单元测试课程大纲初稿
概念
- 单元测试是神马?
- 书本上的经典解释
- 我个人的实践理解
- (此处使用框架图展示单元测试及其它测试手段)
基本原则
- 用例组织形式
- 用例与被测代码关系
- 用例的基本要素:场景(接口)调用 与 断言的设置
使用目的(价值所在)
- 有很多原因让我们认认真真对待单元测试这项工作,此处省略一万字
常用框架
- TestNG/JUnit - 测试用例框架(推荐:使用maven执行单元测试)
- Hamcrest - 用例断言的辅助类库
- Mockito - Mock类库
- WireMock - Mock工具
推荐写法 & 实例展示
- 测试用例的分类与实例代码展示
- http://chenkan.me/blog/2013/11/03/ci_look_back_03_unit_test/
- 结合代码覆盖率工具(各种Eclipse下的代码覆盖率插件)写用例
代码覆盖率介绍
- 术语及覆盖率算法介绍 - 行覆盖率,分支覆盖率,等
- 常用的工具 - Jacoco/EMMA/Sonar
推荐流程
- 以怎样的优先级编写用例,如何有效利用这些用例
- 如何对测试用例实施运维
- 与持续集成(Jenkins)及静态代码检查(Sonar)的结合
- 与其它测试手段的协作,即:分层测试(此处画图展示)
- (可选)我的一些心得体会
(技术上的)实施难点
- 搭建一个简单,易扩展的测试用例框架
- 处理好测试环境依赖(使用mock,stub,fake,等手段)
- 处理好用例之间的依赖及(尤其是隐藏的)耦合
- 把握用例粒度与覆盖范围(http://coolshell.cn/articles/8209.html)
- 用例的价值如何度量(覆盖率,等)
补充说明
- 以上都是我个人的单元测试经验,而我实际上并没有真正的工程级别的Java开发经验==!因此,最好再联系一位Java牛人指点下
- 也可以从一些经典书籍(《代码整洁之道》,等)里面寻找一些经验
- 或者学习一些著名的开源项目(Spring,OpenStack,等)的单元测试
- 这份只是大纲,内容可根据授课对象的兴趣增删改,拆分成几堂课
Reactions are currently unavailable