我们首先新建一个头文件MoneyTest.h,其内容如下:
// MoneyTest.h
#ifndef MONEYTEST_H
#define MONEYTEST_H
#include <cppunit/extensions/HelperMacros.h>
class MoneyTest : public CPPUNIT_NS::TestFixture
{
CPPUNIT_TEST_SUITE( MoneyTest );
CPPUNIT_TEST( testConstructor );//针对构造函数Money( double amount, std::string currency )
CPPUNIT_TEST( testEqual );//针对bool operator ==( const Money &other ) const
CPPUNIT_TEST( testAdd );//针对Money &operator +=( const Money &other )
CPPUNIT_TEST_SUITE_END();
public:
void setUp();
void tearDown();
void testConstructor();
void testEqual();
void testAdd();
};
#endif // MONEYTEST_H
5. 编写case的时间到了,我们针对每个函数进行编写case,每个case尽量独立,这样便于维护,每个函数尽量自己初始化类然后释放资源不应对其他测试用例造成影响,是要减小依赖性,在测试过程中我们常常碰到依赖性的问题,比如原来过的你修改了一个变量对后来的问题造成不过了,这是你要检查的,比如你是否每个对象之间是否是维护同一个内存(变量)了。
// MoneyTest.cpp
#include "StdAfx.h"
#include <cppunit/config/SourcePrefix.h>
#include "Money.h"
#include "MoneyTest.h"
// Registers the fixture into the 'registry'
CPPUNIT_TEST_SUITE_REGISTRATION( MoneyTest );
void
MoneyTest::setUp()//我们在这里可以建立统一的测试环境,比如初始化一些变量,全局量,构造一些测试对象
{
}
void
MoneyTest::tearDown()//清除环境,这在每个测试用例执行完之后都会进行的动作,这个非常关键,不然可能会造成意想不到的结果
{
}