在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. The packages can be overrided by Java Endorsed Standards

     Endorsed Standards APIs The Endorsed Standards for Java SE constitute all classes and interfaces ...

  2. 第三方开源动画库EasyAnimation中一个小bug的修复

    看过iOS动画之旅的都知道,其中在最后提到一个作者写的开源动画库EasyAnimation(以下简称EA). EA对CoreAnimation中的view和layer动画做了更高层次的包装和抽象,使得 ...

  3. SpriteKit中节点的z-position

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交 ...

  4. springMVC源码分析--DispatcherServlet请求获取及处理

    在之前的博客springMVC源码分析--容器初始化(二)DispatcherServlet中我们介绍过DispatcherServlet,是在容器初始化过程中出现的,我们之前也说过Dispatche ...

  5. 剑指offer面试题5 从头到尾打印链表(java)

    注:(1)这里体现了java数据结构与C语言的不同之处 (2)栈的操作直接利用stack进行 package com.xsf.SordForOffer; import java.util.Stack; ...

  6. Android View框架总结(五)View布局流程之Layout

    转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52216195 View树的Layout流程 View的Layout时序图 View布局 ...

  7. 插件占坑,四大组件动态注册前奏(二) 系统Service的启动流程

    转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52203903 前言:为什么要了解系统Activity,Service,BroadCas ...

  8. JRE System Library [JavaSE-1.7](unbound)

    window > preferences > java > Install jars >如果没有jdk1.7 ,点击下面的search,会自动找到已经安装对jdk1.7,选择, ...

  9. NV12和NV21转rgb

    void NV21_T_RGB(unsigned int width , unsigned int height , unsigned char *yuyv , unsigned char *rgb) ...

  10. .so的封装调用

    .so的创建和调用有一个特点,我们要知道.so的调用并不一定必须在Activity中进行,那么制作时也并不一定要在Activity中,但是,一旦.so制作成功,那么再调用时,调用的java类就必须跟制 ...