单元测试之道Java版读后感
通读了单元测试JAVA这本书以后,本来对单元测试完全不了解的我对单元测试有了自己的一点小理解.
这是本相对简单的书,书中采用的JUnit的版本也是旧的,但是在新的JUnit4下稍做修改依然可以运行。重要的是通过这本书了解JUnit在Java的单元测试中是如何使用的。计划你的测试:测试不是无中生有的,也不是意想天开的。是根据需要一点点添加的,帮助自己尽早地发现思考上的误区。参看这章给出的例子,原来理所当然正确的,结果不一定是正确的。测试代码必须要做的几件事情:
单元测试内容Right-BICEP:
- Right——结果是否正确
- Boundary Condition 边界条件——判断边界条件是否正确
- Inverse relation 反转关系——是否具有反转关系
- Cross check 交叉测试——能否用其它手段交叉检查一下结果
- Exception,Error 错误——你是否可以强制错误条件发生
- Performance 演示——是否满足性能要求
CORRECT 边界条件
- 一致性(Conformance)
- 有序性(Ordering)
- 区间性(Range)
- 引用,耦合性(Reference)
- 存在性(Existence)
- 基数性(Cardinality)
- 时间性(Time)
我在读完书以后会觉得Java程序员要编写更好的单元测试,可以从以下7个方面改善:
1、首zhi先需要全面了解软件开dao发测试的类型。单元测试用于测试各个代码组件,并确保代码按照预期的方式工作。
2、使用框架来用于单元测试。Java提供了若干用于单元测试的框架。TestNG和JUnit是最流行的测试框架
3、谨慎使用测试驱动开发。测试驱动开发(TDD)是一个软件开发过程,在这过程中,在开始任何编码之前,我们基于需求来编写测试。由于还没有编码,测试最初会失败。然后写入最小量的代码以通过测试。然后重构代码,直到被优化。
4、测量代码覆盖率。代码覆盖率衡量(以百分比表示)了在运行单元测试时执行的代码量。通常,高覆盖率的代码包含未检测到的错误的几率要低,因为其更多的源代码在测试过程中被执行。
5、尽可能将测试数据外部化。在JUnit4之前,测试用例要运行的数据必须硬编码到测试用例中。这导致了限制,为了使用不同的数据运行测试,测试用例代码必须修改。
6、善用JUnit。与TestNG类似,测试数据也可以外部化用于JUnit。
7、使用断言而不是Print语句。许多新手开发人员习惯于在每行代码之后编写System.out.println语句来验证代码是否正确执行。这种做法常常扩展到单元测试,从而导致测试代码变得杂乱。除了混乱,这需要开发人员手动干预去验证控制台上打印的输出,以检查测试是否成功运行。更好的方法是使用自动指示测试结果的断言。

浙公网安备 33010602011771号