测试替身简单介绍

测试用户场景时,单元与单元之间是有关联的,你测某一单元的功能时,可能需要别的单元提供数据,也有可能这单元会有返回结果,而结果会影响到别的单元,也就是测试的单元可能会有输入输出数据,这些数据是会影响被测单元的功能的。
当我们在测试这样的单元时,一般有两种方法,第一种是,将依赖单元放一起测试,但是这种方法实现比较复杂,困难,有时需要花费大量时间。第二种就是将测试单元独立出来,提供它需要的数据,用一些假的比较简单的数据,但是行为是一样的东西来代替,由此降低复杂度和测试可行性,这些假单元借鉴电影中替身的概念,称为测试替身。

测试替身主要的两项功能:为被测单元提供输入数据和记录被测单元的输出结果。

根据使用场景,测试替身有以下几种类型。
1.Dummy Object :此类的特点是该参数对象不会在当前单元被使用。最简单的是null,但有时候被测方法要求输入的参数是not-null,这种情况就需要创建一个真实的对象。
2.Test Stubs:主要用于提供输入数据,测试用例验证被测单元返回结果是否与预期一致。
这里写图片描述
3.Test Spies:有时被测单元本身不返回测试结果,但它会调用依赖单元间接输出执行结果,例如日志记录模块。为了验证被测单元是否按预期执行,可利用假对象来代替实际的依赖单元,这个假对象会记录并保存所以对它的调用信息,这种假对象成为“Test Spy”,测试用例会验证test spy 中的数据是否与预期一致。
这里写图片描述
4.Mock Object:与test spy类似,但是在test spy的基础上假如了验证功能。由于Mock Object封装了测试验证的逻辑,所以可以被不同的测试用例重用。
这里写图片描述
5.Fack Object :有时在测试环境中建立以来单元比较困难,或者调用依赖单元要花很长的时间,就会使用Fack Object。
与上三种的区别是:它只是为了减少外部环境的依赖,是一种替代实现,并不提供输入输出或验证等功能。常见的场景是使用一个内存数据库取代实际的数据库。
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值