参见:http://cpputest.github.io/
-
CppUTest是一个C/C++单元测试框架,可以在C/C++项目中使命。
-
第一个测试
新建一个cpp 文件,包含一个TEST_GROUP 和一个 TEST。下面的例子表明测试结果是失败。
1 #include "CppUTest/TestHarness.h"
2 int main(int ac, char** av)
3 {
4 //运行所有的单元测试
5 return CommandLineTestRunner::RunAllTests(ac, av);
6 }
7
8 TEST_GROUP(FirstTestGroup)
9 {
10 };
11
12 TEST(FirstTestGroup, FirstTest)
13 {
14 FAIL("Fail me!");
15 }
16
17 TEST(FirstTestGroup, SecondTest)
18 {//向FirstTestGroup中再增加一个测试
19 STRCMP_EQUAL("hello", "world");
20 LONGS_EQUAL(1, 2);
21 CHECK(false);
22 }
View Code
3. 常用宏
- TEST(group, name) - 定义一个测试
- IGNORE_TEST(group, name) - 关闭一个测试
- TEST_GROUP(group) - 声明一个测试组,测试组将包含多个测试
- TEST_GROUP_BASE(group, base) - 和TEST_GROUP类似,不同的是它用了其它的基类,而非Utest
-
IMPORT_TEST_GROUP(group) - 导出一个测试组的名字,使得它可以从一个库中被访问到
-
setup and teardown
每个test组可以有一个setup和一个teardown方法。setup是开始测试开始前调用,用于初始化一些资源。teardown在结束时调用。
1 TEST_GROUP(FooTestGroup)
2 {
3 void setup()
4 {
5 // Init stuff
6 }
7
8 void teardown()
9 {
10 // Uninit stuff
11 }
12 };
View Code
5. 断言
- CHECK
- CHECK(boolean condition) - 判断bool条件
- CHECK_TEXT(boolean condition, text) - 判断bool条件,并打印text里的消息
- CHECK_FALSE(condition) - 判断bool条件
- CHECK_FALSE_TEXT(condition, text) - 判断bool条件,并打印text里的消息
- CHECK_EQUAL(expected, actual) - 判断两个对象的值是否相同
- CHECK_THROWS(expected_exception, expression) - 判断 expression 是否抛出异常 expected_exception
- 字符串相关
- STRCMP_EQUAL(expected, actual) - 用strcmp()判断两个字符串常量是否相同
- STRNCMP_EQUAL(expected, actual, length) - 用strncmp()判断两个字符串常量是否相同
- STRCMP_NOCASE_EQUAL(expected, actual) - 用strcmp()判断两个字符串常量是否相同,且不考虑大小写
- STRCMP_CONTAINS(expected, actual) - 判断 actual 是否包含 expected.
- 两个对象比较
- LONGS_EQUAL(expected, actual) - 比较两个数值
- UNSIGNED_LONGS_EQUAL(expected, actual) - 比较两个非负数
- BYTES_EQUAL(expected, actual) - 比较两个8个位长的数
- POINTERS_EQUAL(expected, actual) - 比较两个指针
- DOUBLES_EQUAL(expected, actual, tolerance) - 比较两个double数值,容忍度是tolerance范围内
- FUNCTIONPOINTERS_EQUAL_TEXT(expected, actual, text) - 比较两个函数指针
- MEMCMP_EQUAL(expected, actual, size) - 比较两块内存
- BITS_EQUAL(expected, actual, mask) - 比较两个数和mask计算后的结果
- FAIL(text) - 总是失败,并打印text信息
原文链接: https://www.cnblogs.com/coolqiyu/p/5378904.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/231741
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!