assert测试
来源:互联网 发布:mac book 常用软件 编辑:程序博客网 时间:2024/06/01 08:58
#include "stdafx.h"
#include "assert.h"
int main(int argc, char* argv[])
{
int a = 0;
assert(a!=0);
printf("Hello World!/n");
return 0;
}
此时出现"Assertion failed: a!=0" 的错误!,如果把int a = 0; 改为int a =2;则没有这个错误。
断言assert是仅在Debug版本起作用的宏,用于检查"不应该"发生的情况。
assert不是一个仓促拼凑起来的宏。为了不在程序的Debug版本和Release版本引起差别,assert不应该产生任何副作用。所以assert不是函数,而是宏。程序员可以把assert看成一个在任何系统状态下都可以安全使用的无害测试手段。如果程序在assert处终止了,并不是说含有该assert的函数有错误,而是调用者出了差错,assert可以帮助我们找到发生错误的原因。
1:使用断言捕捉不应该发生的非法情况。不要混淆非法情况与错误情况之间的区别,后者是必然存在的并且是一定要作出处理的。
2:在函数的入口处,使用断言检查参数的有效性(合法性)。
3:在编写函数时,要进行反复的考查,并且自问:“我打算做哪些假定?”一旦确定了的假定,就要使用断言对假定进行检查。
4:一般教科书都鼓励程序员们进行防错设计,但要记住这种编程风格可能会隐瞒错误。当进行防错设计时,如果“不可能发生”的事情的确发生了,则要使用断言进行报警。
后记:参照林锐《高质量C/C++编程指南》
- assert测试
- node学习-assert测试
- 软件测试assert
- android应用开发之测试-assert
- 自动化测试基础-断言(Assert)使用方法
- 实现一个Assert类,用于测试使用
- 自动化测试基础-断言(Assert)使用方法
- junit测试assert各种断言用法
- assert
- assert
- assert
- assert
- ASSERT()
- assert
- assert
- ASSERT
- ASSERT
- assert
- xml序列化 ICollection
- c#中datagridview处理非绑定列
- 和线程有关
- 超越QQ Mail文件中转站---大文件上传设计思路和实践(一) 王泽宾
- delphi OTA
- assert测试
- 越忙的企业家越不称职
- c#中datagridview处理非绑定列1
- oracle 中删除重复数据记录
- SQL存储过程相关信息查看
- Delphi多线程处理(转载)
- 列出每门学科排前三的学生姓名 (sql)
- 事情,有时就是那么奇怪!
- 类成员函数的重载、覆盖和隐藏区别