Skip to content

单元测试课程(大纲) #10

@chenkan

Description

@chenkan

单元测试课程大纲初稿

概念

  • 单元测试是神马?
  • 书本上的经典解释
  • 我个人的实践理解
  • (此处使用框架图展示单元测试及其它测试手段)

基本原则

  • 用例组织形式
  • 用例与被测代码关系
  • 用例的基本要素:场景(接口)调用 与 断言的设置

使用目的(价值所在)

  • 有很多原因让我们认认真真对待单元测试这项工作,此处省略一万字

常用框架

  • TestNG/JUnit - 测试用例框架(推荐:使用maven执行单元测试)
  • Hamcrest - 用例断言的辅助类库
  • Mockito - Mock类库
  • WireMock - Mock工具

推荐写法 & 实例展示

代码覆盖率介绍

  • 术语及覆盖率算法介绍 - 行覆盖率,分支覆盖率,等
  • 常用的工具 - Jacoco/EMMA/Sonar

推荐流程

  • 以怎样的优先级编写用例,如何有效利用这些用例
  • 如何对测试用例实施运维
  • 与持续集成(Jenkins)及静态代码检查(Sonar)的结合
  • 与其它测试手段的协作,即:分层测试(此处画图展示)
  • (可选)我的一些心得体会

(技术上的)实施难点

  • 搭建一个简单,易扩展的测试用例框架
  • 处理好测试环境依赖(使用mock,stub,fake,等手段)
  • 处理好用例之间的依赖及(尤其是隐藏的)耦合
  • 把握用例粒度与覆盖范围(http://coolshell.cn/articles/8209.html)
  • 用例的价值如何度量(覆盖率,等)

补充说明

  • 以上都是我个人的单元测试经验,而我实际上并没有真正的工程级别的Java开发经验==!因此,最好再联系一位Java牛人指点下
  • 也可以从一些经典书籍(《代码整洁之道》,等)里面寻找一些经验
  • 或者学习一些著名的开源项目(Spring,OpenStack,等)的单元测试
  • 这份只是大纲,内容可根据授课对象的兴趣增删改,拆分成几堂课

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions