《单元测试之道Java版》的读书笔记

    生活中没有后悔,往往在做许多决定时,我们会犹豫不决。而计算机的世界中,有着撤销这一机制,所以不要惧怕错误,大胆向前,把自己的想法统统写下来。但是在自信的前提下,你还需要一些稳重和踏实,验证自己的每一个逻辑思路,这时候我们就需要进行测试。

    单元测试可以大大提高工作效率,可以说是为了巩固根基,从底层开始每一步都需要进行测试以满足我们后期开发不出现底层的根本错误,也是避免我们出现“前进一步,后退两步”的现象。在开发的过程中,可能我们会抵触测试,觉得这会浪费太多的时间,但是这将会是我们在完成开发后不会再花大量的时间和精力来处理因底层错误导致的每一级都出现错误。

    当我们使用 JUnit 编写测试的时候,其中我们值得注意的是看看各种形式的 JUnit assertions,以及 JUnit 测试的 struct 和 constitution。在编写测试代码的时候,需要遵循一些命名习惯,创建所有必须的对象,分配必要的资源,测试和验证方法的输出和预期是否一致,在结束时清理各种占用的资源。

    JUnit 中的断言可以帮助我们确定每个被测试的函数是否正常工作。它是单元测试最基本的部分。几种基本的断言形式值得我们注意:

assertEquals,assertNull,assertSame,assertTrue,fail.一个测试可以使用多个断言来协同测试。最后我们需要 import junit.framework 来通过声明 JUnit 类来进行测试。每一个测试的运行都应该是互相独立的,在测试完成之后你需要释放一些资源,在 JUnit 中的 TestCase 基类提供了两个函数来用于环境的建立和清理。分别为 setup()和 tearDown(),分别在每个 test..方法调用的前后使用。除此之外还可以通过自定义断言的形式来处理特殊的数据类型。

    对于初级程序员来说,对于可能出现 bug 的地方,需要进行测试的地方可能会很难以察觉。我们总结出六个值得测试的具体部位。统称为:RIght-BICEP:

Right-结果是否正确

B-是否所有的边界条件都是正确的

I-能查一下反向关联吗?

c-能用其他的手段交叉检查一下结果吗?

E-能否可以强制错误条件的发生

P-是否满足性能的要求

    边界条件: 一个想到可能的边界条件的简单方法就是观察值是否具有:一致性,顺序性,区间性,依赖性,存在性,和基数性。

    检查反向关联:对于一些方法 我们可以用反向的逻辑关系来验证他们,比如说 我们可以用对结果进行平方的方式来件车一个计算平方根的函数。然后观察测试结果。

    使用Mock对象:单元测试的目标是一次验证一个东西,但是摸个方法依赖于其他的一些难以操作的东西.这时我们就得用到Mock对象了.Mock对象也就是真实对象在调用期的替代品.

    测试Servlet:Servlet是被Web服务器管理的一大块代码.对于URLs的请求转移到Servlet管理器.通过Servlet构建一个response返回给请求中的浏览器,这和我们平常的页面访问没有任何区别.

猜你喜欢

转载自www.cnblogs.com/w7494/p/12551557.html