当前位置: 首页 > news >正文

单元测试:局部静态变量处理

问题:在白盒测试中,单元测试时,局部静态变量的处理问题

有些函数会定义一些static类型变量,函数被多次调用,定义的静态变量满足一定条件时,执行相应的动作,如函数:

void time_cnt (void) { static int cnt=0; if (0 == cnt) { ... cnt++; } else if (2 == cnt) { ... cnt+=2; } ... }

在做单元测试时,就会面临问题,cnt既不是全局变量,也不是参数,不能供我们直接赋初值来设计测试用例,完成对函数的测试任务。

有两种方案解决这个问题:

1、修改代码,定义一个外部全局变量,来达到对静态变量赋初值的目的。

int global_cnt=0; void time_cnt (void) { static int cnt=global_cnt; if (0 == cnt) { ... cnt++; } else if (2 == cnt) { ... cnt+=2; } ... }

2、插入用例初始化代码

int i; for(i=0;i<10;i++) { time_cnt(); }

这样在执行正式的测试用例之前,通过执行数次函数,实现修改局部静态变量的目的。

http://www.jsqmd.com/news/1070884/

相关文章:

  • Python之richtqdm包语法、参数和实际应用案例
  • 融合物理约束与热图监督的视觉目标跟踪:提升鲁棒性的工程实践
  • 基于LLM多智能体与风险感知的翼型设计框架解析
  • Pikachu——url重定向
  • 【计算机工具类-CI和CD工具Skills】agentic-actions-auditor 技能
  • GRAND解码算法:原理、优化与并行实现
  • 跨平台眼底影像分析:基于任务熵与后验集中性的模型不确定性验证
  • 点云去噪无监督评估:UGD原理、实现与实战指南
  • 关于socket的相关理解
  • 动态调度优化LDGM码有损编码:软硬BPGD算法性能提升实践
  • 基于 Harmony 7.0 应用的时光轴应用首页实现
  • 指令粒度如何影响具身智能体性能:从U型效应到实践策略
  • DeepSeek从入门到精通,2026年最值得用的国产AI
  • 3D高斯泼溅技术:实时渲染与SLAM应用解析
  • 【计算机工具类-安全工具Skills】agentic-actions-auditor 技能
  • ASTRA框架:多主体图像生成中的身份与姿态解耦技术
  • GEOSPAT框架:基于最优传输的地理空间AI跨域泛化实践
  • 用 ChatGPT 5.5 辅助 Java 后端排查慢接口:从日志到修复方案的实践
  • POLAR框架:边缘计算中LoRA适配器智能缓存与路由优化实践
  • Python logging日志模块:分级日志、文件输出、完整工程配置
  • DARLING框架:用变化检测增强强化学习应对非平稳环境
  • Harness Engineering:智能汽车物理层连接的系统工程方法论
  • 基于群体感知与边缘MPC的机器人社交导航算法详解
  • 生成模型在生命科学中的应用:从DNA动力学到蛋白质结构解析
  • 数据分析师的终结?Code Interpreter 与 Agent
  • 本体评估方法论WiseOWL:语义网质量守护者
  • 张量退化∃R完全性:超行列式计算与确定性算法的理论障碍
  • 机器人控制新范式:ReconVLA如何通过不确定性引导与故障感知提升系统鲁棒性
  • 2026最新专业排盘工具精度评测:如何判定传统历法数智化软件误差
  • 深度学习在生物声学中的应用与bacpipe工具解析