如何對static函數做單元測試?

guoshimin57 2011-10-09 01:28:34
如何對static函數做單元測試?
在源代碼裏嵌入測試代碼就顯得混亂。而在測試代碼裏include入static函數所在的源文件,又存在有一些問題,如該源文件不能包含main,命名空間不能有交集,等等。而在源文件插入這樣的代碼:
#ifdef UNIT_TEST
#define _static
#else
#define _static static
這樣同樣修改了源文件,雖然是小修。而且在同一個單元測試源文件裏測試數個在不同源文件的static函數裏,還有命名衝突的風險。
有的人說,對調用static函數的外部函數作充分測試,以間接測試static函數。我想,那跟直接測試main,以間接測試所有其他函數有什麼區別?
究竟怎麼辦好呢?
...全文
196 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq120848369 2011-10-09
  • 打赏
  • 举报
回复
测static函数你就写一些全局函数去调这些static函数,否则如果不是main和static在一个源文件里怎么可能调的到static函数。
AnYidan 2011-10-09
  • 打赏
  • 举报
回复
比较麻烦,除了 ls 说的 具体情况具体处理

lz 上网看看专门的测试书籍和文章,有没有更好的方法
零基础 2011-10-09
  • 打赏
  • 举报
回复
学习了,谢谢apple_lover55
jason-xu 2011-10-09
  • 打赏
  • 举报
回复
static函数测试有的时候确实有点小麻烦,特别是工程很大的时候
如你所说使用
#ifdef UNIT_TEST
#define _static
#else
#define _static static
是一种方法,但是前提是各个模块是函数名不要有冲突,所以一般大型的软件项目的时候,函数命令会比较严格,避免重名
对调用static函数做单元测试也是一个方法,但是覆盖率难以保障,但是和你说的直接跑main还是有很大区别的,直接跑main那叫系统测试了,呵呵
具体情况具体处理吧
星羽 2011-10-09
  • 打赏
  • 举报
回复
没太听懂 - -b

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧