目录

强制

推荐

参考


强制

1.好的单元测试必须遵守AIR原则。A:Automatic(自动化),I:Independent(独立性),R:Repeatable(可重复)

2.单元测试应该是全自动执行的,并且非交互式的。测试用例通常是被定期执行的,执行过程必须完全自动化才有意义。输出结果需要人工检查的测试不是一个好的单元测试。单元测试中不准使用System.out来进行人肉认证,必须使用assert来验证。

3.保持单元测试的独立性。为了保证单元测试稳定可靠且便于维护,单元测试用例之间绝不能互相调用,也不能依赖执行的先后次序。

4.单元测试是可以重复执行的,不能受到外界环境的影响。单元测试通常会被放到持续集成中,每次有代码check in时单元测试都会被执行。如果单测对外部环境有依赖,容易导致持续继承机制的不可用。

5.对于单元测试,要保证测试粒度足够小,有助于精确定位问题,单测粒度至多是类级别,一般是方法级别。

6.核心业务、核心应用、核心模块的增量代码确保单元测试通过。

7.单元测试代码必须写在如下工程目录:src/test/java,不允许写在业务代码目录下。

推荐

1.单元测试的基本目标:语句覆盖率达到70%,核心模块的语句覆盖率和分支覆盖率都要达到100%。在DAO层,Manager层和可重用度高的Service中都应该进行单元测试。

2.编写单元测试代码时遵守BCDE原则,以保证被测试模块的交付质量。
    B:Border,边界值测试,包括循环边界、特殊取值、特殊时间点、数据顺序等。
    C:Correct,正确的输入,并得到预期的结果。
    D:Design,与设计文档相结合,来编写单元测试。
    E:Error,强制错误信息输入,并得到预期的结果。

3.对于数据库的相关查询、更新和删除等操作,不能假设数据库里的数据是存在的,或者直接操作数据库将数据插进去,请使用程序插入或者导入数据的方式来准备数据。

4.和数据库相关的单元测试,可以设定自动回滚机制,不给数据库造成脏数据,或者对单元测试产生的数据有明确的前后缀标识。

5.对于不可测的代码在适当的时机做必要的重构,使代码变得可测,避免为了达到测试要求而书写不规范测试代码。

6.在设计评审阶段,开发人员需要和测试人员一起确定单元测试范围,单元测试最好覆盖所有测试用例。

7.单元测试作为一种质量保障手段,在项目提测前完成单元测试,不建议项目发布后补充单元测试用例。

参考

1.为了更方便地进行单元测试,业务代码应该避免一下情况:

  • 构造方法中做的事情过多
  • 存在过多的全局变量和静态方法
  • 存在过多的外部依赖
  • 存在过多的条件语句

2.不要对单元测试存在如下误解:

  • 那是测试同学干的事情。单元测试也是和开发同学强相关的。
  • 单元测试代码是多余的。系统的整体功能和各单元部件的测试真长与否是强相关的。
  • 单元测试代码不需要维护。一年半载后单元测试几乎都会处于废弃朱状态。
  • 单元测试与线上故障没有辩证关系。好的单元测试能够最大限度地规避线上故障。

阿里巴巴java开发编码规范——单元测试相关推荐

  1. Java开发编码规范手册--码出高效、码出质量

    参考与(阿里巴巴JAVA开发手册) 前言 现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点,其它维度的知识点也会影响到软件的最终交付质量. 数据库的表结构和索引设计缺陷可能带 ...

  2. Java开发编码规范

    注:部分规范参考阿里巴巴代码规范,checkstyle等 目录 注:部分规范参考阿里巴巴代码规范,checkstyle等 1.命名风格 2.代码格式 3.代码注释 4.代码设计规范 5.异常的捕获 6 ...

  3. 中科方德java开发编码规范_插件推荐:如何将Java编码规范落地实际开发中

    一个软件需要花费80%的生命周期成本去维护. 几乎没有任何软件的整个生命周期仅由其原作者来维护. 编码规范改善软件的可读性,让工程师更快更彻底地理解新的代码. 如果你将源代码转变为一个产品,那么您需要 ...

  4. 阿里巴巴Java开发命名规范

    1. [强制] 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束.反例: _name / __name / $Object / name_ / name$ / Object$ 2 ...

  5. JAVA 开发命名规范——阿里巴巴Java开发手册

    0)Service/DAO层方法命名规约 1)获取单个对象的方法用get做前缀. 2)获取多个对象的方法用list做前缀. 3)获取统计值的方法用count做前缀. 4)插入的方法用save(推荐)或 ...

  6. 阿里巴巴Java开发规范手册(转载)

    阿里巴巴 JAVA 开发手册   1 / 32    Java 开发手册  版本号 制定团队 更新日期 备  注  1.0.0 阿里巴巴集团技术部 2016.12.7 首次向 Java 业界公开    ...

  7. 阿里巴巴java开发规范学习

    目录 一.编程规约 1.1 命名风格 1.2 常量定义 1.3 代码格式 ​1.4 OOP规约 1.5 集合处理 二.异常 三.MYSQL数据库 3.1 建表规约 3.2 索引规约 3.3 SQL语句 ...

  8. Mysql中的一绡规范约束,摘自《阿里巴巴 Java 开发手册》

    Mysql中的一些规范约束,摘自<阿里巴巴 Java 开发手册> 下载地址:http://download.csdn.net/detail/lengyue1084/9753135

  9. 阿里巴巴Java开发规范线程池_阿里巴巴java编程规范.pdf

    阿里巴巴java编程规范 目录 一.编程规约1 (一) 命名规约1 (二) 常量定义3 (三) 格式规约4 (四) OOP 规约6 (五) 集合处理 10 (六) 并发处理 12 (七) 控制语句 1 ...

最新文章

  1. 比较顺序表和链表的优缺点
  2. flask mysql项目模板渲染_Flask模板渲染
  3. AI算法工程师必备技术,快快积累!
  4. postman 变量
  5. 添加第三方库到Maven资源库
  6. php获取网络文件的几种方式,PHP如何实现获取网络上的文件?
  7. oracle 对应的JDBC驱动 版本
  8. 10 个理由让你继续干 IT
  9. CVE-2017-7529Nginx越界读取缓存漏洞POC
  10. 信息学奥赛一本通(1214:八皇后)
  11. Spring-Logback-动态修改日志级别
  12. 【博客项目】—用户新增功能(九)
  13. Spring核心功能之控制反转(IOC)
  14. CE8301与自激振荡
  15. 蓝桥杯入门即劝退(六)等差素数数列
  16. crackme02——Afkayas.1
  17. android进入wifi权限,判断android设备wifi连接状态,判断android设备wifi,添加访问权限(Andro...
  18. 君子之交+续篇+番外 txt全集
  19. LoRaWAN的激活与天线测试要点,LoRa设备开发参考指南(十八)
  20. 通信达linux版,中标麒麟V6下wine完美运行通达信

热门文章

  1. 百度地图android弹出窗口,【代码】Android百度地图点击弹出信息框
  2. HTC为什么干不过三星
  3. python验证码识别api_python实现验证码识别功能
  4. 类似百度图片排版效果
  5. C#命名空间详解namespace
  6. Win11上用Linux更方便、草图几秒变App、新硬件神似Mac Mini,这届微软开发者大会算把技术“玩明白”了!...
  7. Python利用demoji库删除文档中的表情符号
  8. Mac电脑的Spotlight不显示文件和应用程序,怎么办?
  9. pandas 的cum系列函数
  10. 代码规范(匈牙利命名法)