CPPUNIT 使用学习(一)

从网上下载了cppunit-1.12.1后,发现网上关于cppunit的使用方式说的有些问题,因此将自己使用的方式总结一下,当前只是简单使用。

1 使用继承自TestFixture的单元测试类 

1.1 testPlannaer.hpp


#include <cppunit/extensions/HelperMacros.h>
#include <cppunit/TestFixture.h>

class TestPlanner : public CppUnit::TestFixture
{
    CPPUNIT_TEST_SUITE(TestPlanner);
    CPPUNIT_TEST(testPlannerGlobal1);   //可有多个测试用例;
    //CPPUNIT_TEST(testPlannerGlobal1_R);
    CPPUNIT_TEST_SUITE_END();
public:
    //初始化参数
     void setUp();
     //释放资源
     void tearDown();

     TestPlanner();
     ~TestPlanner();
     //测试用例1系列 //测试全局规划
     void testPlannerGlobal1();
public:
     //测试中使用的通用数据
     PlannerConfig m_pcfg;
     PlanInfo m_pinfo;
};

1.2 TestPlanner.cpp

#include "TestPlanner.hpp"
#include <cppunit/TestSuite.h>

CPPUNIT_TEST_SUITE_REGISTRATION( TestPlanner );//使用此宏声明该类声明的所有测试案例可以在getRegistry()触发
//使用此宏声明该类声明的所有测试案例可以在getRegistry(“TestPlanner”)触发
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( TestPlanner , "TestPlanner");

void TestPlanner::setUp()
{
    //在这里统一初始化所有案例中使用的配置 对象或资源
    //m_pcfg.prior_place_laydiff = 20;    
}

void TestPlanner::tearDown()
{
    //在这里销毁所有初始化了的资源
}

TestPlanner::TestPlanner()
{

}

TestPlanner::~TestPlanner()
{

}


void TestPlanner::testPlannerGlobal1()
{
    //在这里写测试用例,比如调用需要测试的接口
  //使用CPPUNIT_ASSERT_XXXXXX来告诉CPPUNIT你测试的结果 也可以打印出错时输出的信息
CPPUNIT_ASSERT_EQUAL_MESSAGE("测试1_R结束 失败", -1, res);
}

1.3 main.cpp

#include "cppunit/TestResult.h"
#include "cppunit/TestResultCollector.h"
#include "cppunit/TestRunner.h"
#include "cppunit/XmlOutputter.h"
#include "cppunit/TextOutputter.h"
#include <cppunit/extensions/HelperMacros.h>

int main()
{
    CppUnit::TestResult r;
    CppUnit::TestResultCollector rc;
    r.addListener(&rc); // 准备好结果收集器

    CppUnit::TestRunner runner; // 定义执行实体
    //指定运行特定的测试用例 使用了CPPUNIT_TEST_SUITE_NAMED_REGISTRATION声明了的SUITE,使用的名字是你声明时指定的名字
    runner.addTest(CppUnit::TestFactoryRegistry::getRegistry("TestSpecPlanner").makeTest());
    //运行所有使用CPPUNIT_TEST_SUITE_REGISTRATION声明的SUITE

//    runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());
    runner.run(r); // 运行测试

    CppUnit::XmlOutputter o(&rc, std::cout);
    o.write(); // 将结果输出

    system("pause");

    return rc.wasSuccessful() ? 0 : -1;
}

当前我只使用到这个程序,许多其他在网上看到的功能暂未使用,使用后再写后续篇章




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值