说说Java单元测试

本文首发于我的微信公众号《andyqian》,期待你的关注!

前言

有几天没有更新文章了。说假话,最近忙!说实话。最近懒!前一段时间,看了阿里出的《阿里巴巴Java开发手册》以为很是好。。有些简直太有同感了。就好比:单元测试。建议你们都看看。嗯,咱们今天就来讲说单元测试。java

什么是单元测试?

说到单元测试,不少开发同窗很容易忽略。甚至认为是测试才干的事情。这里须要纠正一下,对于单元测试,维基百科中是这样描述的:算法

单元测试又称为模块测试,是针对程序模块(软件设计中的最小单元)来进行正确性检验的测试工做。

看到没?单元测试是正确性检验的测试工做。那么作为一个解决error的开发小哥。可不能把错误扔给测试同窗呀,这明显就是挖坑嘛。数据库

哪些地方须要写单元测试?

在平常开发中,不要认为写单元测试带来了额外的工做。看似下降了开发效率。实际上,这是很是重要的。也能给后期维护带来好处。 大部分的bug也都能经过单元测试测试出来。
如下是须要写单元测试的地方:微信

  1. 在Dao层,Service层中的每个方法都确保单元测试的经过。
    (咱们一般使用Mybatis做为ORM框架,建议将SQL也能经过数据库执行。这也是一种测试方式。)
  2. 在重要的算法,核心业务逻辑必须单元测试经过。

在单元测试中:咱们应尽可能保持测试方法的原子性。也就是说,单元测试粒度越小越好。框架

为何要写单元测试?

若是硬要说出写单元测试的好处?那实在是太多了。最直接的好处,就是减小BUG了。ide

  1. 提升代码质量。
  2. 提升代码可读性。
  3. 对本身代码的一种负责。
    ….

在优秀的开源项目中,如Spring源码中。咱们会发现有不少的单元测试。基本上每一个方法都有单元测试。咱们阅读到难以理解的代码时。运行一下单元测试,调试一下。也能很快理解!单元测试

怎么写单元测试?

在Java中,单元测试代码应该写在 src/test/java 目录下,单元测试资源应该放在src/test/resources下。日常用的最多的单元测试框架就属Junit了。目前最新的Junit版本已经更新到了JUnit 5了。但须要JDK版本在1.8及以上才能运行。若是须要支持在1.7版本的JDK中运行。咱们能够选择低版本的Junit。测试

下面为官网的使用指南地址:ui

https://junit.org/junit5/docs/current/user-guide/spa

因为篇幅缘由。这篇就不给案例了。下次再单独写一篇,如何编写单元测试的吧。

单元测试的一点小建议


在《阿里巴巴Java开发手册》中,关于单元测试给了咱们很是多实用的建议。这里摘录几条,有兴趣的童鞋。能够下载阅读更多:

  1. 保持单元测试的独立性。为了保证单元测试稳定可靠且便于维护,单元测试用例之间决不能互相调用,也不能依赖执行的前后次序。
  2. 单元测试是能够重复执行的,不能受到外界环境的影响。
  3. 单元测试的基本目标:语句覆盖率达到 70% ;核心模块的语句覆盖率和分支覆盖率都
    要达到 100%。
  4. 在设计评审阶段,开发人员须要和测试人员一块儿肯定单元测试范围,单元测试最好覆盖全部测试用例( UC )。

…..

有不少公司,不只有设计评审。还有测试评审,也就是上面第4条所说的。开发人员和测试人员一块儿评估测试范围,以及测试用例。

最后

今天就要回家了,甚至有点小兴奋。你们都何时放假回家呢?

PS: 公众号内回复 『阿里巴巴Java开发手册』。便可获取记念电子版一份。

 

这里写图片描述

 扫码关注,一块儿进步

我的博客: http://www.andyqian.com

相关文章
相关标签/搜索