?????????????

??????????????????????????????????????в???????????????

????????????????????????????д????????????????????????????????£??????????????????????????????Щ??????絯???????????????????????????????????????????????????????????????????????????????????????????????????????70%?????????δ?????????????????????С???????Щ?????????????BUG?????????????????????????????????????????????????????????????????????????г????????????????????????????????????????·??

??????????????????????????????д???????е???????????????????д?????????????????????????????

????????г???????????????д?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????λ????????????????????????????????????????????????λ?????????????????????????????????в??????????????????????????????????????????????????????????????????????????Ч??????????

?????????????????????????(???к???)???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????й????????C++?????????????????????????????????????????????????д????????????????б?д(inline????)??????????????д?????????????в???(????????????????????)??

????????????????????????????絽??????XP???????????TDD?????????????????????д???????????п???????????????У????????????????????????????????Ч??о?????????????????????????д????????????????д????????????????????????д??????????????д?????????????д???????????в??????????????????????ν???д??????????????????д????????????з?????????????????????????????д?????????????????????????????????????????????????????д????????????????????????С??

????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????????????????????????????д?????????????????????Щ???????????磬????????????????????????δ??д????????????д???????????????????????????????????????????????????????????п?????????????????????????????????д????????????????У???????????????????????????????2??????????????2?????????????????????????????????????????????

????????????????д

?????????????????????????????Java???????????C++????????????????????????????????C++?????????????????????????????????VC6.0??

?????????

????????class CMyClass

????????{

????????public:

????????int Add(int i?? int j);

????????CMyClass();

????????virtual ~CMyClass();

????private:

????????int mAge; //????

????????CString mPhase; //?????Σ???"????"??"????"

????????};

??????????????????CMyClassTester??????????????г??????????

????????void CMyClassTester::CaseBegin()

????????{

????????//pObj??CMyClassTester????????????????????????????

????????//?????????е????????????pObj?????????????????

????????pObj = new CMyClass();

????????}

????void CMyClassTester::CaseEnd()

????????{

????????delete pObj;

????????}

??????????????CaseBegin()??CaseEnd()????????????????????????????????????????CaseBegin()????β???????CaseEnd()??

????????????????????????????????

????????int CMyClass::Add(int i?? int j)

????????{

????????return i+j;

????????}

??????????????????????

????????void CMyClassTester::Add_int_int()

????????{

????????}

?????????????????????????????????????????????????????????????????????????????????????????????

????????void CMyClassTester::Add_int_int()

????????{

????????//?????????????

????????CaseBegin(); { //1

????????int i = 0; //2

????????int j = 0; //3

????????int ret = pObj->Add(i?? j); //4

????????ASSERT(ret == 0); //5

????????}CaseEnd(); //6

????????}

??????1???6?н??????????????????????{}????????????????????????????????????????????????????????????????

??????2???3??????????????????4???????????????????Щ???????????????????????5????????????????????????????????????????????????ASSERT??VC?????????????????????????????ò????????е????????????????ù???????????

????????е?????ú?????2??????4??5?п????д???У?ASSERT(pObj->Add(0?? 0) == 0); ???????????????????????????????????????????????????????????????????к????????????????????????????????????飺?????????????????????顣

????????????????????????????????в????????????????????????/??????????????????????????????????????????????????С?????????????????????????/??????????????????????????

????????????????

?????????????????????????????????????????????????????????????????????????????????????????????????????????Щ????????????????????????????????????????????????????????????????????????Щ?????????????????????????????????IOy?塣IOy????????????????????????????????y?壬???磬?????????????????????????????????????????????е??????????????????????????????????????????????????????????????д???????????????????????????????д???????????????????????????????????????????д?????????(???????)???????????????????IOy?壬????????????????????????????????????????趨????????????б??????????????ж??????????????????????????????????й???????

?????????????

????????void CMyClass::Grow(int years)

????????{

????????mAge += years;

????if(mAge < 10)

????????mPhase = "???";

????????else if(mAge <20)

????????mPhase = "????";

????????else if(mAge <45)

????????mPhase = "????";

????????else if(mAge <60)

????????mPhase = "????";

????????else

????????mPhase = "????";

????????}

????????????е??????????????

????????CaseBegin(); {

????????int years = 1;

????????pObj->mAge = 8;

????????pObj->Grow(years);

????????ASSERT( pObj->mAge == 9 );

????????ASSERT( pObj->mPhase == "???" );

????????}CaseEnd();

???????????????ж???????????????mAge???и?????????????ж?????????????????????????????????????????????????????????????????????????????????????????????????????????磺??б???????????????????????е???????浽??????????????????????????????Щ?????????????????????磬?????? ASSERT( ...)???????pObj->OpenFile(); ??????????г????????????????????????????????磬?????????

????????#define UNIT_TEST(cls) friend class cls##Tester;

??????????????????м???д???UNIT_TEST(ClassName)??

?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????/????????????????в????????????в????????????С????????????????????????????????????????

??????????????????????????????????????????????????IOy?壬???????????У??????????????????ж??????????趨??????????У??????????????????????á????????????????????п??????????в???????????????????????????????????????????д????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

????????????

???????????????Trim???????????????????????????????????????????????????????п???????п???????п??????????

???????????

?????????п?????????????????????

??????????????????????????????Ч??Χ??0-100????????????????????0??100??

???????????

?????????????????????Χ??????????????????????????????????????????б????????????С??0?????100???????????????????????????????????????????????????????????????????????????????????????????????

????????????????????????????????????????е???????????????????????к??????С????????£????????????????????????????????????????????????????????????????????????д?????????桱????????????????????????????????????????????????????

?????????и??? ??????

????????????????????????????????????????????ν???в??????????????????????????????????????????????????????????????????????ν???в????????????????????в?????????????????в?????б????????????????????????????????磺????????й??????????????????????????????壬?????????????????????????????Щ???????????????????????Щ???????????????????????????????????в???????????????в???????????????????????????????????????м?????????????磺???????????????串??????????串??δ???????????δ???????????????????δ?????

??????в?????????????????????????????????????????????????????????????λ????У???????????????????????????????·??????串??????????е???????????????????????ж??????????????????????????????????????????????????????й??????????????????£???????????????????е????????????????е????????????????????Σ???????????????????????????????????????п????????????????????????????????????????Σ??????????????????????????????????п????????????????Щ??????о?????????????????й??????????????????????????磺????д??&&?????д!????????÷???????????????????????????????????Щ??????????棬?????????????????????????????????????????????????????????????????????????????????Ч??????????????Ч????????????????????????????????????????????????串????????????????????·??????????????????????????????????????????????????????????Σ????????????????????Σ?????????????????????????????????????????????????????????????????????????????????????????????????????????Щ?????????????????′??????????????潫??????????????

?????????в??????????????????????????鼮????н????????????????????????????????????????????????????????????????????????Щ???????в??????????????????????????????????????????????в???????????и?????????δ??????????λ?????????????????????磬????????????δ??????е????????????????????????????????????????????????????·????????????????????????в?????????????????????????????y???????????????????????????????????Щ????????????????????????????????????????????????Щ?????????????

?????塡??????????

??????????????????????????????????????????????C++??????

??????????CppUnit??????C++?????????????棬???????????????????????????????д????????CppUnit????????£?????????????????CppUnit???????????????Cpluser ???????CppUnit????????????????????CppUnit??????????

??????????C++Test??????Parasoft???????????C++Test??????????????????C/C++?????????????????????????κ?C/C++???????????????????????????????????????????????????????????????????????????????????????????????????????? http://www.superst.com.cn/softwares_testing_c_cpptest.htm ????????????????????????дЩ????C++Test???????????????????????????????????????????????????????C++Test??????????????ù???????????????????C++Test?????????????????????e涼????????????????????????棬??????????????????

?????????Visual Unit?????VU???????????????????????????????????????????????μ???????????????????????????ú???á????????????????????????????????? ???????????? ???????????????Ч????и??? ??????? ??Ч????????????????????????????VU??????????????????????????????????????????????串????????????????????·?????????VU????????????????????????????VU???????????Ч??????????????????????????????????????仹????????????????????????????????????????????黹????????????????????????????????????????????????????????ζ??????????ò????????????????????????????????????????????????????????????棬????????μ???