CppUnit的简单实用

1.CppUnit使用

函数 使用
Fixture 一个或一组测试用例的测试对象。可以是你要测试的对象或者函数。
TestCase 测试用例。是对测试对象的某个功能或流程编写的测试代码。对一个Fixture,可能有多个测试用例。
TestSuite 同时运行的测试用例的集合。可以是一个fixture的多个测试函数、也可以是多个fixture的所有测试用例。
使用时,在测试的主文件中将TestCase注册到TestSuite中,并运行。

2.CppUnit实例

新建MathTest头文件

class MathTest : public CppUnit::TestFixture {
    // 添加一个TestSuite
CPPUNIT_TEST_SUITE( MathTest );
        // 添加测试用例到TestSuite, 定义新的测试用例需要在这儿声明一下
        CPPUNIT_TEST( testAdd );
        CPPUNIT_TEST( testSub );
    CPPUNIT_TEST_SUITE_END();

protected:
    int x, y;
public:
    MathTest() {}
    // 初始化函数
    void setUp ();
    // 清理函数
    void tearDown();
    // 测试加法的测试函数
    void testAdd ();
    // 测试减法的测试函数
    void testSub ();

};
#endif //WW_TEST_MATHTEST_H
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

新建MathTest实现类


//将TestSuite注册到一个名为alltest的TestSuite中
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(MathTest,"alltest");


void MathTest::setUp()
{
    x = 2;
    y = 3;
}
void MathTest::tearDown()
{
}
void MathTest::testAdd()
{
    int result = x + y;
    CPPUNIT_ASSERT( result == 5 );
}

void MathTest::testSub()
{
    int result = x + y;
    CPPUNIT_ASSERT( result == 1 );
}

#include "MathTest.h"


  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

main类

int main()
{
    CppUnit::TextUi::TestRunner runner;

    // 从注册的TestSuite中获取特定的TestSuite, 没有参数获取未命名的TestSuite.
    CppUnit::TestFactoryRegistry &registry = CppUnit::TestFactoryRegistry::getRegistry("alltest");
    // 添加这个TestSuite到TestRunner中
    runner.addTest( registry.makeTest() );
    // 运行测试
    runner.run();

}
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

3.编译程序

输入一下命令,进行编译

g++ -L /usr/local/lib/libcppunit.a main.cpp MathTest.cpp -lcppunit -ldl -o MathTest
  
  
  • 1

/usr/local/lib/libcppunit.a为安装CppUnit是的libcppunit.a路径

main.cpp 、MathTest.cpp为要编译的cpp文件

扫描二维码关注公众号,回复: 3205713 查看本文章

MathTest为编译生成的可执行文件

运行:./MathTest

运行结果如下

这里写图片描述


查看编译完成后,MathTest具体实现

-E MathTest.cpp -o MathTest.E
  
  
  • 1

使用gedit打开MathTest.E文件

./MathTest.E& 


  
  
  • 1

猜你喜欢

转载自blog.csdn.net/ww1314510/article/details/82713374