一、起源

最近对单元测试比较感兴趣,之后就上网搜了一些测试的框架,C++项目使用的测试框架基本上都使用的GoogleTest,之后就开启了gtest的学习之路。

主要是根据《玩转Google开源C++单元测试框架Google Test系列(gtest)》这个系列的博客来学习的。

因为平时的项目主要是MFC项目,就想着给MFC程序搭建一个测试框架出来,上网搜主要都是《gtest测试MFC项目》类似的。

跟着网上的教程走了很多遍,都没有成功,网上又没有更多的相关资料,就放弃在MFC项目中直接搭建测试框架的想法。

二、解决方案

既然不能直接在MFC程序中运行gtest,那就新建一个控制台项目,引用需要测试的MFC项目就行了。

接下来我们用这种方式来搭建一个测试框架吧。

1、新建MFC程序

建MFC程序的过程就不讲了,结果如下:

2、在当前的解决方案下新建一个控制台程序,如图:

3、在新建的DemoTest项目中搭建gtest测试环境

步骤参考《玩转Google开源C++单元测试框架Google Test系列(gtest)》,实测有用。

4、设置DemoTest项目引用Demo项目

  光标移至DemoTest项目,右击 --》 引用 --》添加新引用 ,选择Demo项目,点击确定即可。

5、在Demo中新建include.h文件,将需要测试的类所在文件引用的此文件中。

新建一个测试类CTest 代码如下:

 #pragma once 

 class CTest
{
public:
int TestAdd(int a, int b)
{
return a+b;
}
};

将CTest头文件引用到include.h中。

6、在DemoTest项目中包含Demo项目的include.h路径

选中DemoTest点击右键 --》属性 --》C++目录 --》包含目录 选择Demo项目 include文件所在目录

7、测试和结果

在DemoTest 项目中新建TestCase文件,代码如下

 #pragma once
#include <gtest/gtest.h>
#include "include.h" TEST(ADDTEST,testadd)
{
CTest* addtest = new CTest;
EXPECT_EQ(,addtest->TestAdd(,));
}

运行DemoTest项目 结果如下:

MFC程序使用GTest搭建测试框架的更多相关文章

  1. TestNG 搭建测试框架 自动化测试

    框架层级及基本组件:    参考:https://www.cnblogs.com/jier888/p/8998724.html Java作为开发语言 Maven管理项目及Jar包 Testng作为测试 ...

  2. 白盒测试的学习之路----(四)搭建测试框架TestNG测试

    TestNG是一个开源自动化测试框架; TestNG是类似于JUnit,但它不是一个JUnit扩展.它的灵感来源于JUnit.它的目的是优于JUnit的,尤其是当测试集成的类. TestNG消除了大部 ...

  3. Android开源测试框架学习

    近期因工作需要,分析了一些Android的测试框架,在这也分享下整理完的资料. Android测试大致分三大块: 代码层测试 用户操作模拟,功能测试 安装部署及稳定性测试 代码层测试 对于一般java ...

  4. [转]Android开源测试框架学习

    近期因工作需要,分析了一些Android的测试框架,在这也分享下整理完的资料. Android测试大致分三大块: 代码层测试 用户操作模拟,功能测试 安装部署及稳定性测试 代码层测试 对于一般java ...

  5. karma + phantom + mocha + sion + chai + nightwatch + selenium2(webdriver) 测试框架学习

    第三方的教程传送门 https://segmentfault.com/a/1190000004558796 karma # github https://github.com/karma-runner ...

  6. visual2017专业版MFC编程环境搭建及第一个MFC程序的创建

    1.MFC介绍及环境搭建 MFC全程为Microsoft Foundation class Library,即微软的基本类库,MFC实际上是一个庞大的文件库,它由指向文件和源文件组成. 首先,打开vi ...

  7. Spring TestContext测试框架搭建

    同样是测试,JUnit和Spring TestContext相比,Spring TestContext优势如下: 1.Spring TestContext可以手动设置测试事务回滚,不破坏数据现场 2. ...

  8. 用maven搭建 testNG+PowerMock+Mockito测试框架

    单元测试是开发中必不可少的一部分,是产品代码的重要保证. Junit和testNG是当前最流行的测试框架,Junit是使用最广泛的测试框架,有兴趣的话自己baidu一下. testNG基于Junit和 ...

  9. 十大免费移动程序测试框架(Android/iOS)

    十大免费移动程序测试框架(Android/iOS) 概述:本文将介绍10款免费移动程序测试框架,帮助开发人员简化测试流程,一起来看看吧. Bug是移动开发者最头痛的一大问题.不同于Web应用程序开发, ...

随机推荐

  1. JSP页面格式化数字或时间 基于struts的

    jsp日期格式化 转自: http://blog.csdn.net/chj225500/article/details/7251552 在直接<s:textfield中也要日期格式化,平时使用日 ...

  2. python 作用域(LEGB)

    def fa(a): b = 200 c = 888 def fb(b): print(b) print(a) print(c) print(sum) return fb c = 2 sum = 10 ...

  3. linux中文乱码

    txt文件在linux环境下打开呈现了乱码状态. 解决方法1:在linux用iconv命令,如乱码文件名为zhongwen.txt,那么在终端输入如下命令: iconv -f gbk -t utf8 ...

  4. vue webuploader 组件开发

    最近项目中需要用到百度的webuploader大文件的分片上传,对接后端的fastdfs,于是着手写了这个文件上传的小插件,步骤很简单,但是其中猜到的坑也不少,详细如下: 一.封装组件 引入百度提供的 ...

  5. JavaScript面向对象(三)——继承与闭包、JS实现继承的三种方式

      前  言 JRedu 在之前的两篇博客中,我们详细探讨了JavaScript OOP中的各种知识点(JS OOP基础与JS 中This指向详解 . 成员属性.静态属性.原型属性与JS原型链).今天 ...

  6. 献身说法---修复bug时的一些小技巧

    最近,修复了项目当中的一些bug,觉着有些思路可以分享出来供大家借鉴. 场景一 开发环境中系统正常运行,测试环境中,部分机器未能正常运行. 解决过程:远程连接了测试环境中的机器,观察了系统的运行情况, ...

  7. TCP/IP(二)物理层详解

    前言 在前面说了一下,计算机网络的大概内容,没有去深刻的去了解它,这篇文章给大家分享一下物理层! 我们知道ISO模型是七层,TCP/IP模型是五层,而tcp/ip协议只将七层概括为4层,我们将学习其中 ...

  8. 跨主机使用 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(77)

    上一节我们在 docker1 上的 MySQL 容器中使用了 Rex-Ray volume mysqldata,更新了数据库.现在容器已经删除,今天将演示在 docker2 中重新使用这个卷. 在 d ...

  9. Java伪代码描述《大道至简》第一章

    第一节 Begin //原始需求 惩山北之塞,出入之迂 //项目沟通的基本方式 聚室而谋曰 //项目目标 毕力平险,指通豫南,达于汉阴 //技术方案 扣石垦壤,箕畚运于渤海之尾 //技术人员和工程管理 ...

  10. Spring REST 与 Zuul 代理

    http://www.baeldung.com/spring-rest-with-zuul-proxy 作者: Eugen Paraschiv 译者: http://oopsguy.com 1.概述 ...