• 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
    ", "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 自定义测试框架实现
  • 相关阅读:
    服务端渲染
    node基础
    vue不同组件间的通信
    mui底部导航栏
    在mui中引入自定义的字体图标
    axios的使用
    vue多视图
    多元线性回归:波士顿房价预测问题TesnsorFlow实战
    MNIST手写数字识别:分类应用入门(实践篇)
    7-3 java高级 22_19寻找最大块的问题 (20 分)
  • 原文地址:https://www.cnblogs.com/hugochen1024/p/12570622.html
Copyright © 2020-2023  润新知