我們首先新建一個(gè)頭文件MoneyTest.h,其內(nèi)容如下:
// 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 );//針對(duì)構(gòu)造函數(shù)Money( double amount, std::string currency )
CPPUNIT_TEST( testEqual );//針對(duì)bool operator ==( const Money &other ) const
CPPUNIT_TEST( testAdd );//針對(duì)Money &operator +=( const Money &other )
CPPUNIT_TEST_SUITE_END();
public:
void setUp();
void tearDown();
void testConstructor();
void testEqual();
void testAdd();
};
#endif // MONEYTEST_H
5. 編寫(xiě)case的時(shí)間到了,我們針對(duì)每個(gè)函數(shù)進(jìn)行編寫(xiě)case,每個(gè)case盡量獨(dú)立,這樣便于維護(hù),每個(gè)函數(shù)盡量自己初始化類(lèi)然后釋放資源不應(yīng)對(duì)其他測(cè)試用例造成影響,是要減小依賴(lài)性,在測(cè)試過(guò)程中我們常常碰到依賴(lài)性的問(wèn)題,比如原來(lái)過(guò)的你修改了一個(gè)變量對(duì)后來(lái)的問(wèn)題造成不過(guò)了,這是你要檢查的,比如你是否每個(gè)對(duì)象之間是否是維護(hù)同一個(gè)內(nèi)存(變量)了。
// 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()//我們?cè)谶@里可以建立統(tǒng)一的測(cè)試環(huán)境,比如初始化一些變量,全局量,構(gòu)造一些測(cè)試對(duì)象
{
}
void
MoneyTest::tearDown()//清除環(huán)境,這在每個(gè)測(cè)試用例執(zhí)行完之后都會(huì)進(jìn)行的動(dòng)作,這個(gè)非常關(guān)鍵,不然可能會(huì)造成意想不到的結(jié)果
{
}