CppUTest

CppUTest 是一个用于单元测试 C 和 C++ 的 xUnit- style 框架。它是用 C++编写的,旨在实现设计的可移植性和简单性。它支持内存泄漏检测,构建模拟以及运行其测试以及 Google Test。附带 Visual Studio 和 Eclipse CDT 的帮助程序脚本和示例项目。

#include <CppUTest/CommandLineTestRunner.h>
#include <CppUTest/TestHarness.h>

TEST_GROUP(Foo_Group) {}

TEST(Foo_Group, Foo_TestOne) {}

/* Test runner may be provided options, such
   as to enable colored output, to run only a
   specific test or a group of tests, etc. This
   will return the number of failed tests. */

int main(int argc, char ** argv)
{
    RUN_ALL_TESTS(argc, argv);
}

测试组可能有 setup()teardown() 方法。在每次测试之前调用 setup 方法,然后调用 teardown() 方法。两者都是可选的,可以单独省略。其他方法和变量也可以在组内声明,并且可用于该组的所有测试。

TEST_GROUP(Foo_Group)
{
    size_t data_bytes = 128;
    void * data;

    void setup()
    {
        data = malloc(data_bytes);
    }

    void teardown()
    {
        free(data);
    }

    void clear()
    {
        memset(data, 0, data_bytes);
    }
}