用桩解决单元测试中的内部输入

本文探讨了桩代码在单元测试中的作用,尤其是如何利用桩代码来控制内部输入。虽然桩可以实现隔离和补齐功能,但并非所有内部输入都能通过桩解决。文章分析了自然输入、不可控输入、难于初始化、静态输入和中断输入等类别,指出桩代码在面对某些复杂情况时的局限性,特别是对于多对多关系的处理和动态输出控制的挑战。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         我前面的文章有介绍过,桩有三个功能:隔离、补齐,控制。其中,控制功能就是用于解决内部输入的,因此,打桩并手工修改桩代码,是解决内部输入的方法之一。

         关于编写桩的方法,已在第4章介绍过,这里不再重复。关于如何让桩与用例匹配,请阅读第9章。

遗憾的是,编写桩代码不但增加工作量,而且不能解决所有的内部输入,下面对内部输入分类分析:

         自然输入:自然输入调用实际代码,不需要特别解决,跟桩无关。

          不可控:不可控调用的也是实际代码,并不调用桩代码,因此也不能解决。另外编写桩代码来代替实际代码行不行?在应该调用实际代码的时候,要想调用桩代码可能很麻烦,例如,底层函数位于同一个文件,或同一个类,通常要用编译条件来区分实际代码和桩代码,不但麻烦,而且污染产品代码。

难于初始化:也是调用实际代码。

          静态输入:静态输入只涉及到局部静态变量,没有调用底层函数,当然也不能用桩来代替。

   &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值