首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C语言单元使用CTC++代码覆盖工具测试代码覆盖率

C语言单元使用CTC++代码覆盖工具测试代码覆盖率
EN

Stack Overflow用户
提问于 2018-07-22 19:55:10
回答 1查看 293关注 0票数 2

我对c语言编程很陌生。我正在使用CTC++代码覆盖工具进行C语言单元测试代码覆盖,并且代码覆盖率没有涵盖我的断言条件。我能做些什么来涵盖这部分呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-22 20:05:14

断言的“问题”在于它们很少失败。这通常是一种理智的检查:如果某些条件是错误的,那么程序的其余部分将真正跳进丛林,调试将非常困难,所以最好彻底停止它,即使它不太可能在这里失败。示例:

代码语言:javascript
复制
char *x = malloc(100);
assert(x != NULL);   // how to test so x == NULL ????

因此,当您使用覆盖工具时,该工具必须检查assert宏的两个分支,并且在高级别测试中使其失败几乎是不可能的,对于低级别测试来说仍然非常困难。

错误的影响是,下一次,程序员不会像以前那样多地添加断言语句,仅仅是因为它们的失败是不可测试的。

最好的方法是在使用覆盖工具(how to completely disable assertion)进行测试时禁用断言,这样您就不必证明它们是合理的(您甚至可以在覆盖率报告中作一般性说明/放弃),并将它们留在程序中以防万一。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51468765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档