如何使用VS2013本地C++单元测试框架
在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++单元测试框架的更多相关文章
- Pytest单元测试框架:插件-allure-pytest环境搭建并在本地生成一个测试报告
之前写了allure-pytest的官方文档啃的内容,有些交流的朋友,实践起来没什么头绪,所以就有了这篇文章,也给自己填个坑 第一步:搭建Allure.JDK环境 1. 搭建JDK环境 不装jdk你会 ...
- javascript单元测试框架mochajs详解
关于单元测试的想法 对于一些比较重要的项目,每次更新代码之后总是要自己测好久,担心一旦上线出了问题影响的服务太多,此时就希望能有一个比较规范的测试流程.在github上看到牛逼的javascript开 ...
- Google C++单元测试框架GoogleTest---GMock的CheatSheet文档
CheatSheet文档中包含了GMock所有常用的东西,看了这个基本上就可以用它了,本文接上篇博文:Google C++单元测试框架GoogleTest---Google Mock简介--概念及基础 ...
- Python单元测试框架
目录 概况 系统要求 使用PyUnit构建自己的测试 安装 测试用例介绍 创建一个简单测试用例 复用设置代码:创建固件 包含多个测试方法的测试用例类 将测试用例聚合成测试套件 嵌套测试用例 测试代码的 ...
- 【Python】单元测试框架unitest及其高级应用
Unittest Unittest是python的一个单元测试框架,但是它不仅适用于单元测试,还适用自动化测试用例的开发与执行.我们可以很方便的使用它组织执行测试用例,使用它提供的丰富的断言方法进行测 ...
- python单元测试框架 pyunit
概况 系统要求 使用PyUnit构建自己的测试 安装 测试用例介绍 创建一个简单测试用例 复用设置代码:创建固件 包含多个测试方法的测试用例类 将测试用例聚合成测试套件 嵌套测试用例 测试代码的放置位 ...
- javascript单元测试框架mochajs详解(转载)
章节目录 关于单元测试的想法 mocha单元测试框架简介 安装mocha 一个简单的例子 mocha支持的断言模块 同步代码测试 异步代码测试 promise代码测试 不建议使用箭头函数 钩子函数 钩 ...
- Selenium(十八):unittest单元测试框架(四) HTML测试报告
1. HTML测试报告 对测试人员来而言,测试的产出很难衡量.换句话说,测试人员的价值比较难以量化和评估,相信这一点对软件测试人员来说深有体会.我们花费了很多时间与精力所做的自动化测试也是如此.所以, ...
- 单元测试框架unitest和自动化测试高级应用
单元测试框架:为了让单元测试代码更容易维护和编写,遵循一定的规范来编写测试用例. 创建被测类calculator.py #计算器 class count: def _init_(self,a,b) ...
随机推荐
- The packages can be overrided by Java Endorsed Standards
Endorsed Standards APIs The Endorsed Standards for Java SE constitute all classes and interfaces ...
- 第三方开源动画库EasyAnimation中一个小bug的修复
看过iOS动画之旅的都知道,其中在最后提到一个作者写的开源动画库EasyAnimation(以下简称EA). EA对CoreAnimation中的view和layer动画做了更高层次的包装和抽象,使得 ...
- SpriteKit中节点的z-position
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交 ...
- springMVC源码分析--DispatcherServlet请求获取及处理
在之前的博客springMVC源码分析--容器初始化(二)DispatcherServlet中我们介绍过DispatcherServlet,是在容器初始化过程中出现的,我们之前也说过Dispatche ...
- 剑指offer面试题5 从头到尾打印链表(java)
注:(1)这里体现了java数据结构与C语言的不同之处 (2)栈的操作直接利用stack进行 package com.xsf.SordForOffer; import java.util.Stack; ...
- Android View框架总结(五)View布局流程之Layout
转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52216195 View树的Layout流程 View的Layout时序图 View布局 ...
- 插件占坑,四大组件动态注册前奏(二) 系统Service的启动流程
转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52203903 前言:为什么要了解系统Activity,Service,BroadCas ...
- JRE System Library [JavaSE-1.7](unbound)
window > preferences > java > Install jars >如果没有jdk1.7 ,点击下面的search,会自动找到已经安装对jdk1.7,选择, ...
- NV12和NV21转rgb
void NV21_T_RGB(unsigned int width , unsigned int height , unsigned char *yuyv , unsigned char *rgb) ...
- .so的封装调用
.so的创建和调用有一个特点,我们要知道.so的调用并不一定必须在Activity中进行,那么制作时也并不一定要在Activity中,但是,一旦.so制作成功,那么再调用时,调用的java类就必须跟制 ...