程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> VS 2012 單元測試簡單配置

VS 2012 單元測試簡單配置

編輯:C++入門知識

 寫算法時大多依靠簡單輸入驗證,經常遇到小范圍輸入正常,大范圍或特殊情況輸入結果錯誤的問題。所以寫程序之前最好先想好幾個特殊用例來測試,以驗證算法是否正確。單元測試就是個不錯的工具,而VS 2012提供了很方便的單元測試功能。

首先創建需要測試的C++項目,如果已有項目,可以跳過這個步驟。然後新建兩個文件algs4.h和main.cpp,代碼如下:

algs4.h


[cpp] 
int add(int a, int b) 

    return a+b; 

  
int minus(int a, int b) 

    return a-b; 

int add(int a, int b)
{
    return a+b;
}
 
int minus(int a, int b)
{
    return a-b;
}
main.cpp


[cpp] 
#include "algs4.h"  
  
int main() 

    return 0; 

#include "algs4.h"
 
int main()
{
    return 0;
}
待測試項目創建完成。接下來需要在當前解決方案中新建本機單元測試項目,如下圖:

 

 \
 

完成項目創建之後,為了讓測試方法能夠訪問待測試的代碼,需要在測試項目中添加待測試項目的引用。右擊測試項目,在屬性對話框裡找到VC++目錄->包含目錄

 

 \
 

編輯包含目錄項,在彈出的對話框中添加待測試項目的文件目錄:

 

 \
 

完成後就可以在測試項目中引入待測試函數。簡單的測試代碼如下:


[cpp] 
#include "stdafx.h"  
#include "CppUnitTest.h"  
#include "algs4.h"  
  
using namespaceMicrosoft::VisualStudio::CppUnitTestFramework; 
  
namespace UnitTestAlgs4 
{                
    TEST_CLASS(UnitTest1) 
    { 
    public: 
                  
        TEST_METHOD(TestMethod1) 
        { 
            //TODO: 在此輸入測試代碼  
            Assert::AreEqual(20,add(10,10)); 
        }     
    }; 

#include "stdafx.h"
#include "CppUnitTest.h"
#include "algs4.h"
 
using namespaceMicrosoft::VisualStudio::CppUnitTestFramework;
 
namespace UnitTestAlgs4
{              
    TEST_CLASS(UnitTest1)
    {
    public:
                
        TEST_METHOD(TestMethod1)
        {
            //TODO: 在此輸入測試代碼
            Assert::AreEqual(20,add(10,10));
        }   
    };
}

運行測試時,可以在菜單欄找到測試->運行->所有測試,或者直接右擊,選擇運行測試

 \
 

 

測試結果可以在測試資源管理器中查看:

 
\
 

 

不過以上的配置只能測試頭文件中的代碼,而大多情況下頭文件中並不包括函數的實現,這時,測試項目僅包含待測試項目的文件目錄是不夠的,還需要添加對.obj文件的引用。

假設待測試項目的文件及代碼如下:

algs4.h


[cpp]
int add(int a, int b); 
int minus(int a, int b); 

int add(int a, int b);
int minus(int a, int b);
algs4.cpp


[cpp] 
#include "algs4.h"  
  
int add(int a, int b) 

    return a+b; 

  
int minus(int a, int b) 

    return a-b; 

#include "algs4.h"
 
int add(int a, int b)
{
    return a+b;
}
 
int minus(int a, int b)
{
    return a-b;
}
main.cpp與上面的一致。

打開測試項目的屬性對話框,修改鏈接器的常規->附加庫目錄和輸入->附加依賴項兩個屬性:

 

 \
 

向附加庫目錄中添加待測試函數的.obj文件目錄

如E:\VS2012\Algorithms4\Algorithms4\Debug

向附加依賴項中僅添加待測試函數的.obj文件名,這裡是algs4.obj。

設置好後就能夠正常運行測試。

 

另外,在測試資源管理器中右擊測試名,可以分析測試代碼的覆蓋率。由於當前測試代碼沒有添加對minus的測試,所以它的已覆蓋率是0。覆蓋率測試還可以測試條件語句等分支語句的覆蓋情況。

 

 

 \
 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved