何為單元測試
絕大多數的軟件都是由多人合作完成的,大家的工作相互有依賴關系。軟件的很多錯誤都來源於程序員對模塊功能的誤解、疏忽或不了解其他模塊的變化。如何能讓自己負責的模塊功能的定義盡量的明確,模塊內部的改變不會影響其他模塊,而且模塊的質量能得到穩定的、量化的保證?單元測試就是一個很有效的解決方案。
首先是Visual Studio 2015的安裝
Visual Studio是微軟開發的一套基於組件的軟件開發工具,目前最新的版本是2015。
- 在 I Tell you 網站下載Visual Studio 2015 社區版。網址:http://www.itellyou.cn/。
- 待下載完畢之后解壓,一共包含四個文件或文件夾。雙擊.exe文件開始安裝。
- 開始安裝界面:
- 選擇安裝位置和安裝類型:這里安裝位置選擇在:D:\Program Files (x86)\Microsoft Visual Studio 14.0目錄下,安裝類型選擇自定義。點擊下一步。
- 根據跟人情況選擇需要安裝的功能,由於作業需要,這里編程語言需選擇Visual C++。點擊下一步。
- 預覽所選擇的功能。點擊安裝。
- 等待安裝完成。
- 安裝完成,需重啟電腦。
至此,已經完成Visual Studio 2015的安裝。
- 簡單的單元測試
- 在Visual Studio 2015中建立項目
新建一個“Win 32控制台應用程序”,命名為“UnitTest”。
文件->新建->項目:
已安裝->Visual C++ ->Win32 控制台應用程序->名稱:“UnitTest”。點擊確定。
Win32 應用程序向導:點擊寫一步。
Win32 應用程序向導:點擊完成。
添加頭文件和源文件。並編寫代碼。
頭文件頭文件上右擊->添加。
添加頭文件:AddFunc.h。
添加源文件:AddFunc.cpp。
同方法,添加頭文件:SubFunc.h和源文件SuaFunc.cpp、main.cpp。
頭文件AddFunc.h代碼:
//AddFunc.h #ifndef _ADD_FUNC_H_ #define _ADD_FUNC_H_ int AddFunc(int x, int y); #endif
源文件AddFunc.cpp代碼:
//AddFunc.cpp #include "Addfunc.h" int AddFunc(int x, int y) { return x + y; }
頭文件SubFunc.h代碼:
//SubFunc.h #ifndef _SUB_FUNC_H_ #define _SUB_FUNC_H_ int SubFunc(int x, int y); #endif
源文件SubFunc.cpp代碼:
//SuaFunc.cpp #include "SubFunc.h" int SubFunc(int x, int y) { return x - y; }
編譯鏈接此工程,生成一序列的obj文件。並對各個函數進行單元測試。
- 建立單元測試項目
選擇已安裝->Visual C++ ->測試->托管測試項目“UnitTest_1”。點擊確認。
建立單元測試項目后的解決方案資源管理器:
單元測試項目中的源文件“UnitTest”中的代碼:
添加加法的頭文件“AddFunc.h”。
更改測試方法的函數名稱“void TestMethod1()”為“void testMethodAddFunc()”,並添加代碼:
int nx = 2,ny = 2,nExpect = 4; int nReal = AddFunc(nx,ny); Assert::AreEqual(nReal, nExpect);
把加法的obj文件包含進來。
在測試工程上右擊->屬性->配置屬性->連接器->輸入->添加依賴項右面下箭頭->編輯。
輸入加法的obj的目錄:..\UnitTest\Debug\AddFunc.obj,點擊確定。
- 運行測試項目
測試項目“UnitTest_1”上右擊->屬性->配置屬性->常規->公共語言運行時支持。選擇如下。單擊確定。
打開測試資源管理窗口:
測試資源管理器:
在測試資源管理器窗口點擊全部運行。運行結果如下:若單元測試的結果正確,則單元測試的方法左面會提示一個綠色的勾,否則提示一個紅色的叉。
同方法,添加減法的單元測試方法。
附:函數Assert::AreEqual()的功能是驗證指定的值是否相等。詳細方法說明參見:https://msdn.microsoft.com/zh-cn/library/microsoft.visualstudio.testtools.unittesting.assert.areequal.aspx