cppunit 最简单的实现 vc windows

1. 下载cppunit的源代码, cppunit_1.12.1.tar.gz

2. 解压在src子文件夹下面,使用vc打开工程文件,build- batch build-build all将在lib文件夹下面生成相应的lib和dll库。至此cppunit的库下载成功

3. 新建待测项目Demo,选在Win32 console项目。新建一个TestAdd类,添加一个成员函数add.这里把实现放在了头文件中,不太规范,为的是快速演示功能。

class TestAdd  
{
public:
	TestAdd();
	virtual ~TestAdd();

	int add(int i, int j){
		return i + j;
	}

};


4. 新建一个测试项目,为了保持原项目的清洁,在该工作空间下面新建一个对应的test项目--DemoTest, 项目的有关设置

 1)设置连接库:

cppunit 最简单的实现 vc windows_第1张图片

2) 设置支持多线程的dll

3)设置运行时支持RTTI

cppunit 最简单的实现 vc windows_第2张图片

4)设置编译器、和连接器可以找到头文件和库文件

 

cppunit 最简单的实现 vc windows_第3张图片

cppunit 最简单的实现 vc windows_第4张图片

5.编写用于测试的c++类,

1)头文件

// SampleTest.h: interface for the SampleTest class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SAMPLETEST_H__0D080258_D862_47D6_8B8D_B13F5BDC3E0A__INCLUDED_)
#define AFX_SAMPLETEST_H__0D080258_D862_47D6_8B8D_B13F5BDC3E0A__INCLUDED_



#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000


#include "..\TestAdd.h"
#include <cppunit\extensions\HelperMacros.h>

class SampleTest : public CppUnit::TestFixture  
{
	
	CPPUNIT_TEST_SUITE(SampleTest); 
	CPPUNIT_TEST(testAdd); 
	CPPUNIT_TEST_SUITE_END(); 
public: 
	void setUp(){ 
		m_Sample = new TestAdd(); 
	} 
	
	void tearDown(){ 
		delete m_Sample; 
		m_Sample = NULL; 
	} 
	
	
	void testAdd(); 
private: 
	
	TestAdd *m_Sample; 


public:
	SampleTest();
	virtual ~SampleTest();

};

#endif // !defined(AFX_SAMPLETEST_H__0D080258_D862_47D6_8B8D_B13F5BDC3E0A__INCLUDED_)

 

2)实现文件

// SampleTest.cpp: implementation of the SampleTest class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "SampleTest.h"
#include "..\TestAdd.cpp"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CPPUNIT_TEST_SUITE_REGISTRATION(SampleTest); 

SampleTest::SampleTest()
{

}

SampleTest::~SampleTest()
{

}

void SampleTest::testAdd()
{
	CPPUNIT_ASSERT(2 == m_Sample->add(1,1)); 
	CPPUNIT_ASSERT(2 == (1+1)); 
}


这里的包TestAdd.cpp包含进来比较特殊,因为在CPPUnit的运行过程中要调用TestApp的构造函数来生成类。所以一定要把这个实现文件包含进来。

7. 写主函数,运行看看吧,伙计

 // sampleTest.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "SampleTest.h" 
#include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/ui/text/TestRunner.h>


int main(int argc, char* argv[])


CppUnit::TextUi::TestRunner runner;
CppUnit::TestFactoryRegistry ®istry = CppUnit::TestFactoryRegistry::getRegistry();
runner.addTest(registry.makeTest());
runner.run();
return 0;
}

你可能感兴趣的:(windows,VC,cppunit)