单元测试之道读书笔记

在读单元测试之前,我还不理解什么是单元测试,但是现在我发现单元测试是很重要的,就像盖楼房一样,如果每块砖都是不合格的,那么整栋楼的质量也就不能保证了。只有我们把每个函数或者模块的功能做好,整个工程的bug才会越来越少。把单元测试做好了,就会大大地节省我们的调试程序的时间。所以有必要对这方面提起重视来。

我们构建单元测试,测试代码必须要做的几件事情:准备测试的条件(创建对象、分配资源等等),调用测试的方法,验证测试方法的行为与期望是否相符,测试结束后清理现场。

个需要测试的地方(Right-BICEP):1、Right:结果是否正确(Right)2、B:边界(Boundary)条件是否正确(CORRECT)   3、I:能否检查反向(Inverse)关系  4、C:进行交叉检查(Cross-Check)的其他手段  5 、E:强制错误(Error)条件发生;使用Mock对象实现 6、P:满足性能(Performance)的要求。

CORRECT(正确的)边界条件

一致性(Conformance):值是否符合预期的格式;

有序性(Ordering):一组值是否符合对排序的要求(有序性、无序性);

区间性(Range):值是否在合理取值范围内(在最小值与最大值之间);

引用(Reference)-耦合性:代码是否引用了不受代码本身直接控制的外部因素;

存在性(Existence):值是否存在(例如:非NULL,非零,包含于某个集合等等)

基数性(Cardinality):是否恰好有足够的值;(也称为集合的势,即集合里面包含的元素个数)

时间性(Time)-绝对时间和相对时间:所有的事情是否按照顺序发生?是否在正确的时间发生?是否及时发生?

Mock对象解决的步骤:1、使用一个接口来描述这个对象;2、为产品代码实现这个接口;3、以测试为目的,在Mock对象中实现这个接口

最后感谢老师让我了解了这本书,更深入的了解了单元测试的妙用。

 

posted @ 2020-10-10 21:07  葭月白  阅读(88)  评论(0)    收藏  举报