gtest简单原理学习

本文介绍了gtest框架的基本原理,特别关注了宏定义的转换。虽然C++的宏定义较为复杂,但通过展开后能更清晰理解其工作方式。此外,还推荐了一篇关于gtest的优秀博客,阅读后能带来很大收获。
摘要由CSDN通过智能技术生成

gtest框架原理的简单实现如下:

//测试案例,里面可能包含很多项不同的测试
class TestCase
{
public:
    TestCase(const char* name) :_testCaseName(name) {};
    virtual void run() = 0; 
    int _testResult;    //当测试案例不全通过时,此项值为0
    const char* _testCaseName;      //测试案例名
};

//管理测试案例队列类,单例
class TestCaseManager
{
public:
    static TestCaseManager* getInstance()
    {
        static TestCaseManager a;
        return &a;
    };
    //逐个运行测试案例,并输出结果
    int run()
    {
        _allCount = _testCaseVector.size();
        _successCount = 0;
        for (std::vector<TestCase*>::iterator i = _testCaseVector.begin(); i != _testCaseVector.end(); ++i)
        {
            _currentTestCase = *i;
            _currentTestCase->_testResult = 1;
            std::cout << std::endl << "[-----------------RUN-----------------]" << std::endl;
            std::cout << "run testcase: " << _currentTestCase->_testCaseName << std::endl;
            _currentTestCase->run();        //执行该测试案例的run方法
            if (_currentTestCase->_testResult)      //若测试案例成功通过
            {
                _successCount++;
                std::cout << "success!" << std::endl;
            }
            std::cout << "end testcase: " << _currentTestCase->_testCaseName << std::endl;

        }
        std::cout << "--------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值