Visual Studio 使用教程:在Visual Studio中編寫(xiě)C ++ DLL的單元測(cè)試
Visual Studio是功能完備的 IDE,可用于編碼、調(diào)試、測(cè)試和部署到任何平臺(tái),Visual Studio使用 .NET 開(kāi)發(fā) iOS、Android 和 Web 應(yīng)用和游戲。
有多種測(cè)試DLL代碼的方法,具體取決于它是否導(dǎo)出要測(cè)試的功能。選擇以下方式之一:
- 單元測(cè)試僅調(diào)用從DLL導(dǎo)出的函數(shù):按照編寫(xiě)C / C ++單元測(cè)試中所述添加單獨(dú)的測(cè)試項(xiàng)目。在測(cè)試項(xiàng)目中,添加對(duì)DLL項(xiàng)目的引用。
- DLL被構(gòu)建為.exe文件:添加一個(gè)單獨(dú)的測(cè)試項(xiàng)目。將其鏈接到輸出目標(biāo)文件。
- 單元測(cè)試調(diào)用未從DLL導(dǎo)出的非成員函數(shù),并且DLL可以構(gòu)建為靜態(tài)庫(kù):更改DLL項(xiàng)目,以便將其編譯為.lib文件。添加一個(gè)單獨(dú)的測(cè)試項(xiàng)目,該項(xiàng)目引用被測(cè)項(xiàng)目。這種方法的好處是允許您的測(cè)試使用未導(dǎo)出的成員,但仍將測(cè)試保留在單獨(dú)的項(xiàng)目中。
- 單元測(cè)試必須調(diào)用未導(dǎo)出的非成員函數(shù),并且代碼必須構(gòu)建為動(dòng)態(tài)鏈接庫(kù)(DLL):在與產(chǎn)品代碼相同的項(xiàng)目中添加單元測(cè)試。
創(chuàng)建測(cè)試
將DLL更改為靜態(tài)庫(kù)
- 如果您的測(cè)試必須使用DLL項(xiàng)目未導(dǎo)出的成員,并且被測(cè)試項(xiàng)目被構(gòu)建為動(dòng)態(tài)庫(kù),請(qǐng)考慮將其轉(zhuǎn)換為靜態(tài)庫(kù)。
- 在解決方案資源管理器中,在要測(cè)試的項(xiàng)目的快捷菜單上,選擇“屬性”。將打開(kāi)項(xiàng)目“屬性”窗口。
- 選擇“配置屬性>常規(guī)”。
- 將配置類型設(shè)置為靜態(tài)庫(kù)(.lib)。
引用測(cè)試項(xiàng)目中導(dǎo)出的DLL函數(shù)
- 如果DLL項(xiàng)目導(dǎo)出了要測(cè)試的功能,則可以從測(cè)試項(xiàng)目中添加對(duì)代碼項(xiàng)目的引用。
- 創(chuàng)建一個(gè)本機(jī)單元測(cè)試項(xiàng)目。
- 在“文件”菜單上,選擇“新建”>“項(xiàng)目”。在“添加新項(xiàng)目”對(duì)話框中,將“語(yǔ)言”設(shè)置為C ++,然后在搜索框中鍵入“ test”。然后選擇“本機(jī)單元測(cè)試項(xiàng)目”。
- 在解決方案資源管理器中,右鍵單擊測(cè)試項(xiàng)目,然后選擇“添加”>“引用”。
- 選擇項(xiàng)目,然后選擇要測(cè)試的項(xiàng)目。 選擇添加按鈕。
- 在測(cè)試項(xiàng)目的屬性中,將被測(cè)試項(xiàng)目的位置添加到“包括目錄”中。 選擇“配置屬性”>“ VC ++目錄”>“包含目錄”。選擇“編輯”,然后添加要測(cè)試的項(xiàng)目的頭目錄。
將測(cè)試鏈接到對(duì)象或庫(kù)文件
- 如果DLL沒(méi)有導(dǎo)出要測(cè)試的功能,則可以將輸出.obj或.lib文件添加到測(cè)試項(xiàng)目的依賴項(xiàng)中。
- 創(chuàng)建一個(gè)本機(jī)單元測(cè)試項(xiàng)目。
- 在“文件”菜單上,選擇“新建”>“項(xiàng)目”。在“添加新項(xiàng)目”對(duì)話框中,將“語(yǔ)言”設(shè)置為C ++,然后在搜索框中鍵入“ test”。然后選擇“本機(jī)單元測(cè)試項(xiàng)目”。
- 在解決方案資源管理器中,在測(cè)試項(xiàng)目的快捷菜單上,選擇“屬性”。
- 選擇“配置屬性>鏈接器>輸入>其他依賴關(guān)系”。 選擇“編輯”,然后添加.obj或.lib文件的名稱,不要使用完整路徑名。
- 選擇“配置屬性>鏈接器>常規(guī)>其他庫(kù)目錄”。 選擇“編輯”,然后添加.obj或.lib文件的目錄路徑。該路徑通常在被測(cè)項(xiàng)目的build文件夾中。
- 選擇“配置屬性”>“ VC ++目錄”>“包含目錄”。 選擇“編輯”,然后添加要測(cè)試的項(xiàng)目的頭目錄。
在同一項(xiàng)目中添加單元測(cè)試
- 修改產(chǎn)品代碼項(xiàng)目屬性,以包括單元測(cè)試所需的頭文件和庫(kù)文件。
- 在解決方案資源管理器中,在被測(cè)項(xiàng)目的快捷菜單中,選擇“屬性”,將打開(kāi)項(xiàng)目“屬性”窗口。
- 選擇“配置屬性”>“ VC ++目錄”。
- 編輯包含和庫(kù)目錄:
目錄 | 屬性 |
包含目錄 |
$(VCInstallDir)UnitTest\include;$(IncludePath) |
圖書(shū)館目錄 |
$(VCInstallDir)UnitTest\lib;$(LibraryPath) |
- 添加一個(gè)C ++單元測(cè)試文件:
- 在解決方案資源管理器中,在項(xiàng)目的快捷菜單中,選擇“添加”>“新建項(xiàng)”>“ C ++單元測(cè)試”。
編寫(xiě)單元測(cè)試
在每個(gè)單元測(cè)試代碼文件中,為要測(cè)試的項(xiàng)目的標(biāo)題添加#include語(yǔ)句。將測(cè)試類和方法添加到單元測(cè)試代碼文件中。例如:
#include "stdafx.h" #include "CppUnitTest.h" #include "MyProjectUnderTest.h" using namespace Microsoft::VisualStudio::CppUnitTestFramework; namespace MyTest { TEST_CLASS(MyTests) { public: TEST_METHOD(MyTestMethod) { Assert::AreEqual(MyProject::Multiply(2,3), 6); } }; }
運(yùn)行測(cè)試
- 在“測(cè)試”菜單上,選擇“ Windows”>“測(cè)試資源管理器”。
- 如果在窗口中看不到所有測(cè)試,請(qǐng)?jiān)凇敖鉀Q方案資源管理器”中右鍵單擊其節(jié)點(diǎn),然后選擇“生成”或“重新生成”,以構(gòu)建測(cè)試項(xiàng)目。
- 在測(cè)試資源管理器中,選擇“全部運(yùn)行”,或選擇要運(yùn)行的特定測(cè)試。右鍵單擊測(cè)試以獲取其他選項(xiàng),包括在啟用斷點(diǎn)的調(diào)試模式下運(yùn)行。
推薦文章:
在Visual Studio中編寫(xiě)C / C ++的單元測(cè)試
想要購(gòu)買(mǎi)Visual Studio正版授權(quán),或了解更多產(chǎn)品信息請(qǐng)點(diǎn)擊【咨詢?cè)诰€客服】