news 2026/6/24 5:28:17

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
单元测试:局部静态变量处理

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

有些函数会定义一些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(); }

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/24 5:27:42

16-Redis 与 Redisson 采集:缓存节点如何参与问题定位

核心问题:缓存访问如何成为链路诊断和数据依赖分析的一部分。 先说结论 Redis 访问经常影响接口性能和业务状态,缓存节点不应该被链路分析忽略。 采集 Redis 命令时,至少要记录 command、key、耗时和异常。 同时 key 可能包含敏感信息,必须考虑脱敏策略。 这篇文章能带…

作者头像 李华
网站建设 2026/6/24 5:19:02

基于近红外与隐式神经表示的低光图像去噪:频率解耦融合技术详解

1. 项目概述&#xff1a;当低光摄影遇上近红外拍夜景、拍星空&#xff0c;或者只是在昏暗的室内想记录点什么&#xff0c;我们总会遇到一个老问题&#xff1a;画面太暗&#xff0c;噪点太多。打开手机或相机的“夜景模式”&#xff0c;本质上是在用多帧合成和算法暴力压制噪点&…

作者头像 李华
网站建设 2026/6/24 5:15:51

逆变器开环控制仿真研究(Simulink仿真实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 &#x1f381…

作者头像 李华
网站建设 2026/6/24 5:13:05

张量退化∃R完全性:超行列式计算与确定性算法的理论障碍

1. 项目概述&#xff1a;从“张量退化”到算法障碍的深层探索最近在整理一些关于高维数据计算和代数复杂性理论的老笔记&#xff0c;一个反复被同行和学生问起的问题浮现在眼前&#xff1a;为什么有些关于张量的基础计算问题&#xff0c;理论上看起来很美&#xff0c;但一到设计…

作者头像 李华
网站建设 2026/6/24 5:09:11

大语言模型代码生成安全:从表征学习缺陷到对抗性提示攻防

1. 从“智能助手”到“潜在漏洞”&#xff1a;代码生成场景下的安全新战场最近在本地部署了几个开源的大语言模型&#xff0c;尝试让它们帮我写一些自动化脚本和数据处理代码。一开始确实很爽&#xff0c;动动嘴皮子&#xff0c;一个功能模块的雏形就出来了&#xff0c;效率提升…

作者头像 李华