C++-doctest-测试框架
C++-doctest-测试框架
测试框架
doctest 是用过的最简单好用的的单元测试框架, 只需要引用 一个头文件即可
无main 函数的测试样例
#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
#include "doctest.h"
int factorial(int number) { return number <= 1 ? number : factorial(number - 1) * number; }
TEST_CASE("testing the factorial function") {
CHECK(factorial(1) == 1);
CHECK(factorial(2) == 2);
CHECK(factorial(3) == 6);
CHECK(factorial(10) == 3628800);
}
有main 函数的测试样例
在函数 context 的run 执行的时候 会将所有 TEST_CASE 的宏函数展开执行, 可以根据自己的情况安排测试
#define DOCTEST_CONFIG_IMPLEMENT
#include "doctest.h"
int main(int argc, char **argv) {
doctest::Context context;
context.applyCommandLine(argc, argv);
int res = context.run(); // run doctest
// important - query flags (and --exit) rely on the user doing this
if (context.shouldExit())
{
// propagate the result of the tests
return res;
}
printf("%s\n", "Hello, World!");
system("pause");
return 0;
}
int factorial(const int number) {
return number < 1 ? 1 : number <= 1 ? number : factorial(number - 1) * number;
}
TEST_CASE("testing the factorial function") {
CHECK(factorial(0) == 1);
CHECK(factorial(1) == 1);
CHECK(factorial(2) == 2);
CHECK(factorial(3) == 6);
CHECK(factorial(10) == 3628800);
}
更多
自己简单使用的功能能够使用了,
自己看到了 vczh 写的一个简单的测试框架的实现, 了解原理,然后发现了这个C++库, 真的很好用, 目前自己需要的功能够用, 后续更过功能还要自己去啃 doctest 文档
但是感觉 GoogleTest 提供的功能更多, 后续可能切换过去,