1. 程式人生 > >VS2013 本地C++單元測試框架

VS2013 本地C++單元測試框架

在VS2013中,可以使用VS自帶的C++單元測試框架。

  在使用該框架前,需要先安裝Unit Test Generator(可以通過選單“工具->擴充套件和更新”搜尋安裝)。

  下邊,就闡述一下利用該框架的步驟:

1. 新建空的Win32控制檯專案NativeUnitTest

2. 新建單元測試工程

  在解決方案NativeUnitTest下新建單元測試工程,“Visual C++ -> 測試 -> 本機單元測試專案”,如下圖所示:

  

3. 生成NativeUnitTest專案

  這樣做的目的在於生成.obj檔案(在NativeUnitTest/Debug/中),以便於單元測試專案新增。

4. 修改單元測試專案屬性

  詳細如下圖所示:

5. 編寫單元測試檔案

  NativeUnitTest專案的標頭檔案和原始檔如下:

複製程式碼
1 class TrivialCalculator
2 {
3 public:
4     double Add(double x, double y);
5     double Subtract(double x, double y);
6     double Multiply(double x, double y);
7     double Divide(double x, double y);
8 };
複製程式碼複製程式碼
 1 #include "TrivialCalculator.h
" 2 3 double TrivialCalculator::Add(double x, double y) 4 { 5 return x + y; 6 } 7 8 double TrivialCalculator::Subtract(double x, double y) 9 { 10 return x - y; 11 } 12 13 double TrivialCalculator::Multiply(double x, double y) 14 { 15 return x * y; 16 } 17 18 double TrivialCalculator::Divide(double
x, double y) 19 { 20 return x / y; 21 }
複製程式碼

  單元測試檔案如下:

複製程式碼
 1 #include "stdafx.h"
 2 #include "CppUnitTest.h"
 3 #include "..\NativeUnitTest\TrivialCalculator.h"
 4 
 5 using namespace Microsoft::VisualStudio::CppUnitTestFramework;
 6 using namespace std;
 7 
 8 namespace NativeUnitTest_Namespace
 9 {
10     TEST_CLASS(TrivialCalculatorTest)
11     {
12     public:
13         TrivialCalculatorTest()
14         {
15             test = new TrivialCalculator;
16         }
17 
18         ~TrivialCalculatorTest()
19         {
20             delete test;
21         }
22 
23         TEST_METHOD(AddTest)
24         {
25             //TrivialCalculator test;
26             double actual = test->Add(1.0, 2.0);
27             double expected = 3.0;
28 
29             Assert::AreEqual(expected, actual, 0.0001);
30         }
31 
32         TEST_METHOD(SubtractTest)
33         {
34             //TrivialCalculator test;
35             double actual = test->Subtract(2.0, 1.0);
36             double expected = 1.0;
37 
38             Assert::AreEqual(expected, actual, 0.0001);
39         }
40 
41 
42     public:
43         TrivialCalculator * test;
44 
45     };
46 
47 }
複製程式碼