单元测试之道Java版读后感

通读了单元测试JAVA这本书以后,本来对单元测试完全不了解的我对单元测试有了自己的一点小理解.

这是本相对简单的书,书中采用的JUnit的版本也是旧的,但是在新的JUnit4下稍做修改依然可以运行。重要的是通过这本书了解JUnit在Java的单元测试中是如何使用的。计划你的测试:测试不是无中生有的,也不是意想天开的。是根据需要一点点添加的,帮助自己尽早地发现思考上的误区。参看这章给出的例子,原来理所当然正确的,结果不一定是正确的。测试代码必须要做的几件事情:

单元测试内容Right-BICEP:

  1. Right——结果是否正确
  2. Boundary Condition 边界条件——判断边界条件是否正确
  3. Inverse relation 反转关系——是否具有反转关系
  4. Cross check 交叉测试——能否用其它手段交叉检查一下结果
  5. Exception,Error 错误——你是否可以强制错误条件发生
  6. Performance 演示——是否满足性能要求

CORRECT 边界条件

  1. 一致性(Conformance)
  2. 有序性(Ordering)
  3. 区间性(Range)
  4. 引用,耦合性(Reference)
  5. 存在性(Existence)
  6. 基数性(Cardinality)
  7. 时间性(Time)

我在读完书以后会觉得Java程序员要编写更好的单元测试,可以从以下7个方面改善:
1、首zhi先需要全面了解软件开dao发测试的类型。单元测试用于测试各个代码组件,并确保代码按照预期的方式工作。
2、使用框架来用于单元测试。Java提供了若干用于单元测试的框架。TestNG和JUnit是最流行的测试框架
3、谨慎使用测试驱动开发。测试驱动开发(TDD)是一个软件开发过程,在这过程中,在开始任何编码之前,我们基于需求来编写测试。由于还没有编码,测试最初会失败。然后写入最小量的代码以通过测试。然后重构代码,直到被优化。
4、测量代码覆盖率。代码覆盖率衡量(以百分比表示)了在运行单元测试时执行的代码量。通常,高覆盖率的代码包含未检测到的错误的几率要低,因为其更多的源代码在测试过程中被执行。
5、尽可能将测试数据外部化。在JUnit4之前,测试用例要运行的数据必须硬编码到测试用例中。这导致了限制,为了使用不同的数据运行测试,测试用例代码必须修改。
6、善用JUnit。与TestNG类似,测试数据也可以外部化用于JUnit。
7、使用断言而不是Print语句。许多新手开发人员习惯于在每行代码之后编写System.out.println语句来验证代码是否正确执行。这种做法常常扩展到单元测试,从而导致测试代码变得杂乱。除了混乱,这需要开发人员手动干预去验证控制台上打印的输出,以检查测试是否成功运行。更好的方法是使用自动指示测试结果的断言。

posted @ 2020-10-20 18:21  听风画雨  阅读(105)  评论(0)    收藏  举报