單元測試其實非常重要,是軟件質(zhì)量中很重要的部分。單元測試可以保證你的模塊的穩(wěn)定性,提前預知錯誤。目前的我們的開發(fā)中,常常只有集成測試和系統(tǒng)測試,代碼可能遺留大量的細小的無法測試出來的錯誤,這些錯誤還會互相影響,當BUG真正暴露出來的時候就很難調(diào)試,后期測試和維護成本的成本就很高。單元測試把這些容易出錯的復雜的地方從繁雜冗長的代碼中單獨剝離出來了,防止了問題的擴散,針對性的進行測試,能非常迅速的把隱藏在其中的問題明顯的暴漏出來。其實解決問題不是難事,難就難在找到問題所在,單元測試就是做這個的??梢哉f,進行充分的單元測試,是提高軟件質(zhì)量,降低開發(fā)成本的必經(jīng)之路。
單元測試是由開發(fā)者自己來寫的,是對代碼的最小單元進行覆蓋測試。要進行充分的單元測試,程序猿要專門編寫測試代碼,并與產(chǎn)品代碼隔離。比較簡單的辦法是為產(chǎn)品工程建立對應的測試工程,為每個類建立對應的測試類,為每個函數(shù)(很簡單的除外)建立測試函數(shù)。執(zhí)行單元測試,就是為了證明這段代碼的行為和我們期望的一致。所以,測試函數(shù)要構造不同的邊界條件、用例來覆蓋,以驗證是否在所有情況下代碼的行為都和我們的期望一致。
關于單元測試框架,許多軟件巨頭都有相應的框架。目前有很多成熟的單元測試框架,比如google有GoogleTest,微軟有集成在vs的UnitTestFramework,Qt有Qt的單元測試框架,其他有名的單元測試框架,如CppUnit,JUnit,UnitTest等。這里用Qt的單元測試框架做個簡單的演示。
1.首先在qtcreator中新建一個Qt單元測試工程,如圖:
2.然后新建一個要被測試的類,里面有將要被測試的Add方法。
【MyModule.h】
#ifndef MYMODULE_H #define MYMODULE_H class MyModule { public: MyModule(); private: int Add(