C++ 单元测试 Cpputest

参见:http://cpputest.github.io/

  1. CppUTest是一个C/C++单元测试框架,可以在C/C++项目中使命。

  2. 第一个测试

新建一个cpp 文件,包含一个TEST_GROUP 和一个 TEST。下面的例子表明测试结果是失败。
C++ 单元测试 CpputestC++ 单元测试 Cpputest

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在结束时调用。
C++ 单元测试 CpputestC++ 单元测试 Cpputest

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

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 下午3:10
下一篇 2023年2月13日 下午3:10

相关推荐