伪对象、桩对象、模拟对象|单元测试

在我们单元测试的实践中,常常会发现一个方法依赖一个无法控制的对象,我们称其为外部依赖项。
一个外部依赖项——是系统中的一个对象,被测试代码与这个对象发生交互,但你不能控制这个对象。(常见的外部依赖项包括文件系统、线程、内存以及时间等。)
而单元测试背后的思想是,仅测试这个方法中的内容,当测试开始渗透到其他类、服务或系统时,此时测试便跨越了边界。而一旦测试跨了边界就变成了集成测试。进而也带来了所有与集成测试相关的问题——运行速度较慢,需要配置,一次测试多个内容......

1 桩对象(存根)

什么是桩对象(存根)

一个存根(桩对象)(stub)是对系统中存在的一个依赖项(或者协作者)的可控制的替代物。通过使用存根,你在测试代码时无需直接处理这个依赖项。

如何使用桩对象(存根)破除依赖
示例1

假设我们有下面这样一个方法,从文件系统中读取一个文件,获取文件的扩展名,如果扩展名是jpg就返回true,否则返回false。

IFileExtensionManager fileManager;

public bool IsValidFileName(){
    //获取文件扩展名
    string extName=fileManager.GetExtName();
    if(extName=="jpg"){
    	return true;
    }
    return fals
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值