如何使用VS2013本地C++单元测试框架

  在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 };

TrivialCalculator.h

 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 }

TrivialCalculator.cpp

  单元测试文件如下:

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

时间: 2024-10-24 00:23:24

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

Python单元测试框架 unittest

Python单元测试框架 作者: Steve Purcell, <stephen_purcell at yahoo dot com>翻译: Heiz, <heiz dot yuan at gmail dot com>项目网站: http://pyunit.sourceforge.net/ 目录 概况 系统要求 使用PyUnit构建自己的测试 安装 测试用例介绍 创建一个简单测试用例 复用设置代码:创建固件 包含多个测试方法的测试用例类 将测试用例聚合成测试套件 嵌套测试用例 测试代

Python 单元测试框架 —— PyUnit

转载自http://www.oschina.net/question/12_27127#GUI 目录 概况 系统要求 使用PyUnit构建自己的测试   安装 测试用例介绍 创建一个简单测试用例 复用设置代码:创建固件 包含多个测试方法的测试用例类 将测试用例聚合成测试套件 嵌套测试用例 测试代码的放置位置 交互式运行测试 从命令行运行测试 在用户界面窗口运行测试 为测试编写文档 更多关于测试条件 测试相等性 测试异常 通过PyUnit复用旧测试代码 在JPython和Jython中使用PyUn

利用单元测试框架进行单元测试

单元测试目的是为了保证代码按照程序员的预期运行,往往关注的是比其他测试更低的层次,从而确定代码的底层功能是否与期望一致. 对于API框架而言,单元测试的一个重要优点在于测试在编译阶段就引入了依赖关系,从而使之更容易确定代码的更改是否会影响API表示的契约. 单元测试程序集与被测代码一般要分离开,这样可以保证在对应用程序代码进行部署时不包含单元测试,因为单元测试代码在产品环境中没有什么用. 代码的独立单元测试越容易,就越容易维护. 所有测试都应该是自主的和独立的,且应该对期望行为和错误情况都进行测

Qt高级——QTestLib单元测试框架

Qt高级--QTestLib单元测试框架 一.QTestLib简介 1.QTestLib简介 QTestLib是Qt提供的一种针对基于Qt编写的程序或库的单元测试框架.QTestLib提供了单元测试框架的基本功能,并提供了针对GUI测试的扩展功能. 2.QTestLib特性 QTestLib是为了简化QT程序或库的单元测试工作而设计的.QTestLib特性如下:A.轻量级:QTestlib只包含6000行代码和60个导出符号B.自包含:对于非GUI测试,QTestlib只需要Qt核心库的几个符号

单元测试框架找寻及搭建任务总结

1.框架选型 h2 { margin-top: 0.46cm; margin-bottom: 0.46cm; direction: ltr; line-height: 173%; text-align: justify; page-break-inside: avoid } h2.western { font-family: "Calibri Light", serif; font-size: 16pt } h2.cjk { font-size: 16pt } h2.ctl { fon

Google C++单元测试框架

一.概述 Google C++单元测试框架(简称Gtest),可在多个平台上使用(包括Linux, Mac OS X, Windows, Cygwin和Symbian),它提供了丰富的断言.致命和非致命失败判断,能进行值参数化测试.类型参数化测试."死亡测试".Gtest是一个开源的项目,其源码可以从这里下载,目前的代码发行版是1.6.0. 编译 源码包中的README文件说明了如何编译Gtest源码,目录msvc.xcode中分别包含了Windows.Mac OS X平台相关的项目文

玩转Google开源C++单元测试框架Google Test系列(gtest)之一 初识gtest

进入文件夹执行: ./configure make make install 完毕即可正常使用: (1)包含include目录 -I/root/scp/gtest/gtest-1.3.0: (2)包含lib中的动态链接库:-lgtest -L/root/scp/gtest/gtest-1.3.0/lib 示例代码: [cpp] view plaincopy #include <gtest/gtest.h> int Foo(int a, int b) { if (a == 0 || b == 0

Google C++单元测试框架---GTest的Sample1和编写单元测试的步骤

如果你还没有搭建gtest框架,可以参考我之前的博客:http://www.cnblogs.com/jycboy/p/6001153.html.. 1.The first sample: sample1 你把github上的项目导来之后,github地址:https://github.com/google/googletest,在目录:..(你的目录)\googletest-master\googletest\samples是你的samples文件夹. 在VS中创建项目:GtestSamples

Python自动单元测试框架(摘要笔记)

规范Python单元测试 原文:https://www.ibm.com/developerworks/cn/linux/l-pyunit/ 测试是一个贯穿于整个开发过程的连续过程,从某个意义上说,软件开发的过程实际上就是测试过程.正如Martin Fowler所说的"在你不知道如何测试代码之前,就不该编写程序.而一旦你完成了程序,测试代码也应该完成.除非测试成功,你不能认为你编写出了可以工作的程序." 测试最基本的原理就是比较预期结果是否与实际执行结果相同,如果相同则测试成功,否则测试