VS2017中對C++的單元測試


安裝Visual Studio 2017

由於平時都是用codeblock,因此電腦中沒有裝VS系列的IDE,就從安裝開始吧

最開始安裝的時候沒有注意什么都沒選,安裝完了以后根本沒有c++的編譯器和各項組件............

上圖就是啥都沒安裝...要不然怎么安裝包只有一百多MB.....

歷經千辛萬苦終於裝完了。那么下一步就開始單元測試吧。


對C++進行單元測試

首先先建立一個工程,分別編寫cpp和頭文件,下圖是我剛開始編寫的程序,僅僅寫了cpp文件,沒有自定義頭文件,下面的代碼是我后寫的

最終cpp文件中的代碼如下:

#include<iostream>
#include"test.h"
using namespace std;

int Cal::add(int x, int y)//返回兩個變量的和
{
	return x + y;
}

int Cal::sub(int x, int y)//返回兩個變量的差
{
	return x - y;
}

int main()
{
	return 0;
}

最終頭文件test.h中的代碼如下:

class Cal {//計算類
public:
	int add(int x, int y);
	int sub(int x, int y);
};

確定代碼無誤后,右鍵點擊“解決方案”->"添加"->“新建項目”,如下圖所示

緊接着在彈出的頁面選擇“本機單元測試項目”

此時左側的狀態欄出現了單元測試的項目,“UnitTest1”

右鍵選中引用,點擊“添加引用”,如下圖所示

勾選需要引用的項目,也就是需要測試的項目

接下來開始編寫測試程序,如下圖所示

然后操作如下圖,但是...........

去 世 了

經過一番不懈的查找努力終於找到了問題所在...沒有引入需要測試項目的頭文件.....下圖為改正后的測試代碼

那么再測試一次吧...應該沒事了吧......

又 去 世 了

其實問題出在了這里...右鍵測試項目,然后選擇屬性

選擇“鏈接器”->"輸入"->"選擇依賴項"

可以看到我輸入的是需要測試項目的obj文件的路徑,但是寫的卻是*.obj,相當於選擇該文件夾下所有obj文件

但是打開對應的文件夾后,發現有兩個obj文件.....原因是因為最早建立項目時使用了默認名稱,但是為了引用成功我給改成了英文名...因此有兩個obj文件,系統不確定到底是哪一個文件(你妹)

於是乎回去修改依賴項...改成確定的文件......

終 於 運 行 成 功 了

這里說一下,Assert::AreEqual函數是確定是否兩個數相等的操作,如果兩個數不相等,那么將不會通過測試,但是運行可以成功,如下圖所示,3-5=-2,不滿足的話就不能通過測試

總結

通過學習vs2017的單元測試,我掌握了進行單元測試的的基礎方法,在錯誤中成長,學會了不少東西,爭取在這之后快速的根據別人的博客學會更多的測試技術(比如一個類在運行時還要引用新的文件,那么依賴項還是要進行修改),也讓我意識到了自學是進步最快的方法,多讀別人的博客可能就會學會很多東西,因此要虛心好學。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM