单元测试中内部输入的六种情形

本文探讨了单元测试中遇到的六种内部输入情况:自然输入、不可控、失真、难于初始化、静态输入和中断输入。这些情况分别通过正常调用底层函数、无法控制的返回值、桩代码导致的失真、复杂初始化需求、局部静态变量和中断函数的影响,给测试带来难度。解决这些问题需要巧妙的测试策略和初始化方法。
摘要由CSDN通过智能技术生成

      1 自然输入

        自然输入是指对底层函数的正常调用即可获得的内部输入。代码一中Compare()函数内,int a1 = GetArea(r);可以自然取得外接正方形的面积。如果外接正方形面积a1要得到某个预期的值,要传递合适的半径r,半径r称为间接输入。间接输入需根据自然输入及底层函数的功能来倒推,要获得符合预期的自然输入有三个条件:一是底层函数存在,二是底层函数正确,三是间接输入正确。很多时候,自然输入很简单,而间接输入很复杂,这就是难于初始化。

      2 不可控

       是指调用实际代码,但实际代码的输出难于控制,无法产生测试需要的指定值。例如,底层函数返回一个随机数,就是不可控。在实际项目中,不可控是很常见的,下面的代码是空调控制程序中的一个函数:

extern int GetTemperature(int *pTemperature); //取环境温度

int gExpectTemperature = 25;    //全局变量,预设的目标温度

/*

功能: 空调控制程序片断,取得环境温度并计算制冷器需运行的时间

参数: pWorkTime, 输出参数,保存制冷器需运行的时间

返回: int类型,如果函数执行失败,返回0,否则返回非0

*/

int WorkTime(int *pWorkTime)

{

      int success = 0;  //取环境温度是否成功

    int temperature;  //环境温度

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值