VS2013本地C++单元测试框架

VS2013本地C++单元测试框架

https://www.cnblogs.com/xiehongfeng100/p/4438076.html

 

 

  在VS2013中,可以使用VS自带的C++单元测试框架。

  在使用该框架前,需要先安装Unit Test Generator(可以通过菜单“工具->扩展和更新”搜索安装)。

  下边,就阐述一下利用该框架的步骤:

1. 新建空的Win32控制台项目NativeUnitTest

  将该工程的"配置类型"改为“动态库(dll)”,如下图:

  

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 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 "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 }

 

  参考资料:

  使用 Microsoft.VisualStudio.TestTools.CppUnitTestFramework

  (英文版Using Microsoft.VisualStudio.TestTools.CppUnitTestFramework

  Writing Native C++ Unit Tests with VS Test

  Unit testing native code with Test Explorer

  Visual Studio 单元测试 C++ 版 —— 测试已有的工程

  在Visual Studio 2013 中使用C++单元测试

 

================ End

 

posted @ 2020-05-24 20:09  lsgxeva  阅读(595)  评论(0编辑  收藏  举报