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

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

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

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

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

  

2. 新建单元测试工程

  在解决方案NativeUnitTest下新建单元测试工程,“Visual C++ -> 测试 -> 本机单元测试项目”,如下图所示:

  

3. 生成NativeUnitTest项目

  这样做的目的在于生成.obj文件(在NativeUnitTest/Debug/中),以便于单元测试项目添加。

4. 修改单元测试项目属性

  详细如下图所示:

5. 编写单元测试文件

  NativeUnitTest项目的头文件和源文件如下:

 class TrivialCalculator
{
public:
double Add(double x, double y);
double Subtract(double x, double y);
double Multiply(double x, double y);
double Divide(double x, double y);
};

TrivialCalculator.h

 #include "TrivialCalculator.h"

 double TrivialCalculator::Add(double x, double y)
{
return x + y;
} double TrivialCalculator::Subtract(double x, double y)
{
return x - y;
} double TrivialCalculator::Multiply(double x, double y)
{
return x * y;
} double TrivialCalculator::Divide(double x, double y)
{
return x / y;
}

TrivialCalculator.cpp

  单元测试文件如下:

 #include "stdafx.h"
#include "CppUnitTest.h"
#include "..\NativeUnitTest\TrivialCalculator.h" using namespace Microsoft::VisualStudio::CppUnitTestFramework;
using namespace std; namespace NativeUnitTest_Namespace
{
TEST_CLASS(TrivialCalculatorTest)
{
public:
TrivialCalculatorTest()
{
test = new TrivialCalculator;
} ~TrivialCalculatorTest()
{
delete test;
} TEST_METHOD(AddTest)
{
//TrivialCalculator test;
double actual = test->Add(1.0, 2.0);
double expected = 3.0; Assert::AreEqual(expected, actual, 0.0001);
} TEST_METHOD(SubtractTest)
{
//TrivialCalculator test;
double actual = test->Subtract(2.0, 1.0);
double expected = 1.0; Assert::AreEqual(expected, actual, 0.0001);
} public:
TrivialCalculator * test; }; }

  具体步骤到此结束!

  项目文件可以从百度云下载。

  参考资料:

  使用 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++单元测试

如何使用VS2013本地C++单元测试框架的更多相关文章

  1. Pytest单元测试框架:插件-allure-pytest环境搭建并在本地生成一个测试报告

    之前写了allure-pytest的官方文档啃的内容,有些交流的朋友,实践起来没什么头绪,所以就有了这篇文章,也给自己填个坑 第一步:搭建Allure.JDK环境 1. 搭建JDK环境 不装jdk你会 ...

  2. javascript单元测试框架mochajs详解

    关于单元测试的想法 对于一些比较重要的项目,每次更新代码之后总是要自己测好久,担心一旦上线出了问题影响的服务太多,此时就希望能有一个比较规范的测试流程.在github上看到牛逼的javascript开 ...

  3. Google C++单元测试框架GoogleTest---GMock的CheatSheet文档

    CheatSheet文档中包含了GMock所有常用的东西,看了这个基本上就可以用它了,本文接上篇博文:Google C++单元测试框架GoogleTest---Google Mock简介--概念及基础 ...

  4. Python单元测试框架

    目录 概况 系统要求 使用PyUnit构建自己的测试 安装 测试用例介绍 创建一个简单测试用例 复用设置代码:创建固件 包含多个测试方法的测试用例类 将测试用例聚合成测试套件 嵌套测试用例 测试代码的 ...

  5. 【Python】单元测试框架unitest及其高级应用

    Unittest Unittest是python的一个单元测试框架,但是它不仅适用于单元测试,还适用自动化测试用例的开发与执行.我们可以很方便的使用它组织执行测试用例,使用它提供的丰富的断言方法进行测 ...

  6. python单元测试框架 pyunit

    概况 系统要求 使用PyUnit构建自己的测试 安装 测试用例介绍 创建一个简单测试用例 复用设置代码:创建固件 包含多个测试方法的测试用例类 将测试用例聚合成测试套件 嵌套测试用例 测试代码的放置位 ...

  7. javascript单元测试框架mochajs详解(转载)

    章节目录 关于单元测试的想法 mocha单元测试框架简介 安装mocha 一个简单的例子 mocha支持的断言模块 同步代码测试 异步代码测试 promise代码测试 不建议使用箭头函数 钩子函数 钩 ...

  8. Selenium(十八):unittest单元测试框架(四) HTML测试报告

    1. HTML测试报告 对测试人员来而言,测试的产出很难衡量.换句话说,测试人员的价值比较难以量化和评估,相信这一点对软件测试人员来说深有体会.我们花费了很多时间与精力所做的自动化测试也是如此.所以, ...

  9. 单元测试框架unitest和自动化测试高级应用

    单元测试框架:为了让单元测试代码更容易维护和编写,遵循一定的规范来编写测试用例. 创建被测类calculator.py   #计算器 class count: def _init_(self,a,b) ...

随机推荐

  1. 理解性能的奥秘——应用程序中慢,SSMS中快(1)——简介

    本文属于<理解性能的奥秘--应用程序中慢,SSMS中快>系列 在工作中发现有不少类似的现象,有幸看到国外大牛写的一篇文章,由于已经完善得不能再添油加醋,所以决定直接翻译,原文出处:http ...

  2. Scheme N皇后

    (define (range n) (define (recur n) () '() (cons n (recur (- n ))))) (recur (- n ))) (define (flatte ...

  3. iOS下JS与OC互相调用(八)--Cordova详解+实战

    扯两句,可以跳过 由于项目中Cordova相关功能一直是同事在负责,所以也没有仔细的去探究Cordova到底是怎么使用的,又是如何实现JS 与 OC 的交互.所以我基本上是从零开始研究和学习Cordo ...

  4. Android开发基础规范(一)

    转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52602487 前言:Androi ...

  5. Android必知必会-带列表的地图POI周边搜索

    如果移动端访问不佳,请尝试–> Github版 2016-08-22 更新 注意:在 Activity 代码中的onPoiSearched(PoiResult result, int rCode ...

  6. java虚拟机 jvm 局部变量表实战

    java局部变量表是栈帧重要组中部分之一.他主要保存函数的参数以及局部的变量信息.局部变量表中的变量作用域是当前调用的函数.函数调用结束后,随着函数栈帧的销毁.局部变量表也会随之销毁,释放空间. 由于 ...

  7. EBS中的采购单据状态及其控制

     李  颖 (济南钢铁股份有限公司 装备部,山东 济南 250101) 摘 要:介绍了Oracle Purchasing模块中采购单据的管理与控制,结合实例,分析了各状态下可采取的控制活动及控制活 ...

  8. Cocos2D实现RPG游戏人物地图行走的跟随效果

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 在一些RPG游戏中,人物队列在地图中行走的时候有时需要实现一个 ...

  9. [django]用日期来查询datetime类型字段

    有一个model的字段是 DateTimeField,我现在要具体查询某一天date的数据,应该怎么用orm来查询呢? 指定年月日 YourModel.objects.filter(datetime_ ...

  10. 最简单的基于DirectShow的示例:视频播放器自定义版

    ===================================================== 最简单的基于DirectShow的示例文章列表: 最简单的基于DirectShow的示例:视 ...