單元測(cè)試其實(shí)非常重要,是軟件質(zhì)量中很重要的部分。單元測(cè)試可以保證你的模塊的穩(wěn)定性,提前預(yù)知錯(cuò)誤。目前的我們的開發(fā)中,常常只有集成測(cè)試和系統(tǒng)測(cè)試,代碼可能遺留大量的細(xì)小的無法測(cè)試出來的錯(cuò)誤,這些錯(cuò)誤還會(huì)互相影響,當(dāng)BUG真正暴露出來的時(shí)候就很難調(diào)試,后期測(cè)試和維護(hù)成本的成本就很高。單元測(cè)試把這些容易出錯(cuò)的復(fù)雜的地方從繁雜冗長(zhǎng)的代碼中單獨(dú)剝離出來了,防止了問題的擴(kuò)散,針對(duì)性的進(jìn)行測(cè)試,能非常迅速的把隱藏在其中的問題明顯的暴漏出來。其實(shí)解決問題不是難事,難就難在找到問題所在,單元測(cè)試就是做這個(gè)的??梢哉f,進(jìn)行充分的單元測(cè)試,是提高軟件質(zhì)量,降低開發(fā)成本的必經(jīng)之路。

  單元測(cè)試是由開發(fā)者自己來寫的,是對(duì)代碼的最小單元進(jìn)行覆蓋測(cè)試。要進(jìn)行充分的單元測(cè)試,程序猿要專門編寫測(cè)試代碼,并與產(chǎn)品代碼隔離。比較簡(jiǎn)單的辦法是為產(chǎn)品工程建立對(duì)應(yīng)的測(cè)試工程,為每個(gè)類建立對(duì)應(yīng)的測(cè)試類,為每個(gè)函數(shù)(很簡(jiǎn)單的除外)建立測(cè)試函數(shù)。執(zhí)行單元測(cè)試,就是為了證明這段代碼的行為和我們期望的一致。所以,測(cè)試函數(shù)要構(gòu)造不同的邊界條件、用例來覆蓋,以驗(yàn)證是否在所有情況下代碼的行為都和我們的期望一致。

  關(guān)于單元測(cè)試框架,許多軟件巨頭都有相應(yīng)的框架。目前有很多成熟的單元測(cè)試框架,比如google有GoogleTest,微軟有集成在vs的UnitTestFramework,Qt有Qt的單元測(cè)試框架,其他有名的單元測(cè)試框架,如CppUnit,JUnit,UnitTest等。這里用Qt的單元測(cè)試框架做個(gè)簡(jiǎn)單的演示。

  1.首先在qtcreator中新建一個(gè)Qt單元測(cè)試工程,如圖:

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

  2.然后新建一個(gè)要被測(cè)試的類,里面有將要被測(cè)試的Add方法。

【MyModule.h】

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

#ifndef MYMODULE_H#define MYMODULE_Hclass MyModule
{public:
    MyModule();private:    int Add(int a, int b);
};#endif // MYMODULE_H

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

【MyModule.cpp】

網(wǎng)友評(píng)論