CppUnit测试框架中的异常判断宏
来源:互联网 发布:材料 知乎 编辑:程序博客网 时间:2024/05/23 00:02
TestAssert (名字空间中Assert函数集合)
说明:
在CppUnit的名字空间中的全局的判定(Assert)函数,提供了多样的判断方法。
预定义宏:
(1) CPPUNIT_ASSERT(condition)
测试目的:判断condition是否为true,如果是false则抛出异常
在进行单元测试的时候用到的最多的测试宏,判断条件condition是true还是false,如果是false则返回condition代表的字符串(#condition,在宏中进行字符串的生成;A##B,是变量的联合,代表成一个变量)
(2) CPPUNIT_ASSERT_MESSAGE(message,condition)
测试目的:判断condition是否是true,如果是false,则抛出异常,包含message消息。
这个也是相对而言用的比较多的测试宏,判断条件condition是true还是false,如果是false则返回condition代表的字符串和自己增加的message消息
(3) CPPUNIT_FAIL( message )
测试目的:简单的抛出包哈message消息的异常。
作为一个功能宏,在fail的时候抛出异常,其中异常包含message消息
(4) CPPUNIT_ASSERT_EQUAL(expected,actual)
测试目的:判断expected和actual是否相等,不等则抛出异常。
测试真实值和异常值是否相同,如果不同,则抛出异常
(5) CPPUNIT_ASSERT_EQUAL_MESSAGE(message,expected,actual)
测试目的:判断expected和actual是否相等,不等则抛出包含message的异常信息。
测试真是值和异常值是否相同,如果不同,则抛出异常,异常包含的信息为message
(6) CPPUNIT_ASSERT_DOUBLES_EQUAL(expected,actual,delta)
测试目的:判断double的变量expected和actual的差值是否在delta范围内,如果不在则抛出异常。
测试double类型的变量的真实值和异常值得差值绝对值是否在delta范围内,如果不在范围内则抛出异常,异常消息会输出真实值和异常值。
(7) CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(message,expected, actual,delta)
测试目的:判断double变量expected和actual的差值是否在deltta范围内,不在则抛出包含了message消息的异常。
和(6)的测试条件相同,只是异常的消息中包含了message信息
(8) CPPUNIT_ASSERT_THROW( expression, ExceptionType )
测试目的:判断expression是否抛出异常类型为ExceptionType的异常,如果抛出,则CppUnit框架不抛出异常,如果没有该异常抛出则CppUnit抛出异常,并且包含非该异常的what信息。
通过assert判断expression表达式是否抛出ExceptionType的异常,如果抛出这种异常<则达到了自己的测试目的>,则不会抛出该异常;如果不是这个异常,则会抛出该异常,并且扩展了异常的包含信息,其中包含了外部异常的what()信息。
(9) CPPUNIT_ASSERT_NO_THROW( expression )
测试的目的:该表达式不会抛出异常,如果抛出异常在CppUnit则会抛出自己的异常,并且消息中包含该异常的what信息
(10) CPPUNIT_ASSERT_ASSERTION_FAIL( assertion )
测试目的:嵌套宏的异常表达式定义,判断assertion表达式失败的时候(可能是上面1-9中的CppUnit抛出的自己的异常类型)抛出的异常类型是否是CppUnit中的自定义异常类型,如果是则不抛出异常,如果不是则抛出异常。实质是(8)的一个特例的嵌套。
(10)CPPUNIT_ASSERT_ASSERTION_FAIL_MESSAGE(message, assertion )
测试目的:和(10)的测试目的一样,只是添加了额外的信息message
(11)CPPUNIT_ASSERT_ASSERTION_PASS (assertion )
测试目的:判断CppUnit的assertion表达式是否pass,如果pass则不会抛出异常,如果没有pass则会抛出异常。
(12)CPPUNIT_ASSERT_ASSERTION_PASS_MESSAGE(message, assertion )
测试目的:同(11),只是增加了测试失败后的附加消息。
上面(10)-(12)的嵌套宏定以,类似于“设计模式”中的组合模式,可以进行多次嵌套。
- CppUnit测试框架中的异常判断宏
- CppUnit测试框架入门
- CppUnit测试框架入门
- CppUnit测试框架入门
- CppUnit测试框架入门
- CppUnit测试框架入门
- CppUnit测试框架入门
- CppUnit测试框架入门
- CppUnit测试框架入门
- CppUnit测试框架入门
- CppUnit测试框架入门
- 学习CppUnit测试框架
- CppUnit测试框架入门
- CppUnit测试框架入门
- CppUnit测试框架入门
- CppUnit测试框架入门(1)
- CppUnit测试框架入门(2)
- CppUnit测试框架入门(1)
- 转发:九症状自我检测肾虚程度
- 三款免费的PHP加速器:APC、eAccelerator、XCache比较
- 俄罗斯方块的设计
- 优先队列用法
- 李一男2003 年在港湾给开发人员培训时的语录
- CppUnit测试框架中的异常判断宏
- OSSchedLock()--上锁函数
- asp常用数据库连接方法和技巧
- CppUnit中测试框架的核心组件类图结构
- epoll为什么比select这么快?
- linux环境下deb格式 转换成rpm格式
- Linux下多路复用IO接口 epoll select poll 的区别
- NSSet类型 以及与NSArray区别
- CppUnit部分核心代码分析之SourceLine