天天看點

C++ Unit test 初體驗

在軟體開發的過程中,單元測試(Unittesting)是一個重要的coding步驟,可以讓你的程式代碼品質大幅提升、協助你進行良好的程式架構設計,單元測試是針對程式單元(軟體設計的最小機關)來進行正确性檢驗的測試工作,在程式化程式設計中,一個單元就是單個程式、函式、過程等;對于對象導向程式設計,最小單元就是方法,包括基礎類别(超類)、抽象類、或者衍生類别(子類别)中的方法。

想要在VC++項目中,進行單元測試的Framework有很多選擇,例如: CPPUnit、GoogleGTest...等,自VisualStudio 2012開始,提供了内建的單元測試架構Microsoft.VisualStudio.TestTools.CppUnitTestFramework并且與VS高度整合。

以下為使用VS2013履歷簡單Unit test的步驟:

1. 建立Product 項目

建立一個基本的win32主要台應用程式項目。在這裡命名為LearUniteTest,編寫簡單的代碼,如建立一個Student類和年齡,年級函數。

2. 設定Product code配置類型,從.exe改為.lib(靜态連結庫)

C++ Unit test 初體驗
C++ Unit test 初體驗

3. 建立Unit Test項目, 在同一Solution解決方案中,新增測試項目,選擇 測試->本機單元測試項目。

C++ Unit test 初體驗
C++ Unit test 初體驗

4. 設定測試項目配置:

請在Solution Manager中,對UnitTes項目按右鍵,在項目屬性視窗中進行以下設定:

4.1. 在[VC++目錄]->[Include目錄]設定參考項目頭檔案所在的檔案位址;

4.2. 在[VC++目錄]->[庫目錄]中設定lib檔案所在檔案位址;

C++ Unit test 初體驗
C++ Unit test 初體驗

4.3  在[連結器]->[輸入]設定連結項目輸出的lib

C++ Unit test 初體驗
C++ Unit test 初體驗

5: 在Unittest.cpp中編寫測試代碼;

Student newStudent;
            newStudent.SetAge(10);
            newStudent.SetGrade(5);
            Logger::WriteMessage("StudengInfoTest begins./n");
            Assert::AreNotEqual(newStudent.GetAge(), 0);
            Assert::AreNotEqual(newStudent.GetGrade(), 0);
            Logger::WriteMessage("StudentInfoTest end./n");
           

常用函數:Logger::WriteMessage()

Assert::AreNotEqual()

Assert::AreEqual()

繼續閱讀