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 提供的功能更多, 后续可能切换过去,

参考链接

  1. doctest 文档翻译
  2. Doctest Github 仓库
  3. Doctest 官方例程
  4. Vczh 自定义测试框架实现

原文链接: https://www.cnblogs.com/hugochen1024/p/12570622.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    C++-doctest-测试框架

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/194776

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

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

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

(0)
上一篇 2023年2月12日 下午6:47
下一篇 2023年2月12日 下午6:48

相关推荐