zoukankan      html  css  js  c++  java
  • 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 "..NativeUnitTestTrivialCalculator.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

  • 相关阅读:
    http1.1长连接实战(一)
    【转】微服务与SOA之间差了一个ESB
    在SpringBoot 1.5.3上使用gradle引入hikariCP
    狮子心
    为啥他们不作为
    Redis 后台运行
    Jquery 动态生成的元素绑定事件
    linux tzselect 设置时区
    Docker 容器内配置Tomcat manager 远程控制
    Docker基于容器创建镜像
  • 原文地址:https://www.cnblogs.com/lsgxeva/p/12952432.html
Copyright © 2011-2022 走看看