Visual Studio是功能完備的 IDE,可用于編碼、調試、測試和部署到任何平臺,Visual Studio使用 .NET 開發 iOS、Android 和 Web 應用和游戲。
點擊立即下載Visual Studio
本演練介紹如何使用測試優先方法開發本機C ++ DLL。(點擊此處到達下部分內容)。基本步驟如下:
-
創建一個本機測試項目。測試項目與DLL項目位于同一解決方案中。
-
創建一個DLL項目。本演練將創建一個新的DLL,但是測試現有DLL的過程是相似的。
-
使DLL函數對測試可見。
-
迭代地擴充測試。建議一個“紅色-綠色-重構”循環,其中代碼的開發由測試主導。
-
調試失敗的測試。您可以在調試模式下運行測試。
-
重構,同時保持測試不變。重構意味著在不更改其外部行為的情況下改進代碼的結構。您可以這樣做以提高代碼的性能,可擴展性或可讀性。因為目的不是要更改行為,所以在對代碼進行重構更改時,請勿更改測試。這些測試有助于確保重構時不會引入錯誤。
-
檢查覆蓋范圍。當單元測試使用更多的代碼時,它們會更加有用。您可以發現測試已使用了代碼的哪些部分。
-
將單元與外部資源隔離。通常,DLL依賴于您正在開發的系統的其他組件,例如其他DLL,數據庫或遠程子系統。將每個單元與其依賴項隔離開來測試很有用。外部組件會使測試運行緩慢,在開發過程中,其他組件可能不完整。
創建一個本機單元測試項目
-
在“文件”菜單上,選擇“新建”>“項目”。
-
Visual Studio 2017及更早版本:展開已安裝>模板> Visual C ++>測試。Visual Studio 2019:將語言設置為C ++,然后在搜索框中鍵入"測試''。
-
選擇本機單元測試項目模板,或您喜歡的任何已安裝框架。如果您選擇其他模板(例如Google Test或Boost.Test),則基本原理相同,盡管某些細節有所不同。
-
在本演練中,測試項目名為NativeRooterTest。
-
在新項目中,檢查unittest1.cpp。
注意:
-
通過使用TEST_METHOD(YourTestName){...}定義每個測試。
您不必編寫常規的函數簽名,簽名是由宏TEST_METHOD創建的。宏生成一個實例函數,該函數返回void。它還生成一個靜態函數,該函數返回有關測試方法的信息。該信息使測試瀏覽器可以找到該方法。
-
使用TEST_CLASS(YourClassName){...}將測試方法分組為類。
運行測試時,將創建每個測試類的實例。測試方法的調用順序不確定。您可以定義在每個模塊,類或方法之前和之后調用的特殊方法。
-
驗證測試是否在“測試資源管理器”中運行:
TEST_METHOD(TestMethod1)
{
Assert::AreEqual(1,1);
}
請注意,Assert類提供了幾種靜態方法,可用于驗證測試方法中的結果。
-
在“測試”菜單上,選擇“運行”>“所有測試”,測試生成并運行,出現“測試資源管理器”,該測試將顯示在“通過的測試”下。
創建一個DLL項目
以下步驟顯示如何在Visual Studio 2019中創建DLL項目。
-
使用Windows桌面向導創建C ++項目:在解決方案資源管理器中右鍵單擊解決方案名稱,然后選擇“添加”>“新建項目”。 將語言設置為C ++,然后在搜索框中鍵入“ windows”。 從結果列表中選擇Windows桌面向導。
在本演練中,該項目名為RootFinder。
-
按創建。在下一個對話框的“應用程序類型”下,選擇“動態鏈接庫(dll)”,然后選中“導出符號”。
導出符號選項會生成一個方便的宏,可用于聲明導出的方法。
聲明符__declspec(dllexport)使該類的公共成員和受保護成員在DLL外部可見。
// Find the square root of a number.
double CRootFinder::SquareRoot(double v)
{
return 0.0;
}
將測試項目耦合到DLL項目
-
將DLL項目添加到測試項目的項目引用中:
-
在解決方案資源管理器中右鍵單擊測試項目節點,然后選擇“添加”>“引用”。
-
在“添加引用”對話框中,選擇DLL項目,然后選擇“添加”。
-
在主體單元測試.cpp文件中,包括DLL代碼的.h文件:
#include "..\RootFinder\RootFinder.h"
TEST_METHOD(BasicTest)
{
CRootFinder rooter;
Assert::AreEqual(
// Expected value:
0.0,
// Actual value:
rooter.SquareRoot(0.0),
// Tolerance:
0.01,
// Message:
L"Basic test failed",
// Line number - used if there is no PDB file:
LINE_INFO());
}
-
構建解決方案。
新測試將出現在“測試資源管理器”中。
-
在測試資源管理器中,選擇“全部運行”。
您已經設置了測試和代碼項目,并確認可以運行在代碼項目中運行功能的測試。現在您可以開始編寫實際的測試和代碼。
本文內容較多,分為上下兩部分進行介紹,(點擊此處到達下部分內容)。
想要購買Visual Studio正版授權,或了解更多產品信息請點擊
標簽:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: