15 lujun-cc

尚未进行身份认证

暂无相关简介

等级
TA的排名 6w+

C++单元测试三:测试private成员

测与不测之争关于类的私有成员(数据和方法),要不要进行单元测试之争,尚没有统一的结论;(关于这一争论,可以参考http://stackoverflow.com/questions/9202862/is-unit-testing-private-methods-a-good-practice)有人认为测试私有成员也是一个好的实践,原因嘛,就是没有原因,你本来就应该测你的所有代码;也有人说,类

2013-06-03 14:48:08

C++单元测试二:何时Mock及其是与非

什么时候需要mock在前面一部分(C++单元测试一:并非看上去那么简单——几个很实际的问题),我遇到的问题是:一个单元测试工程只能测一个被测类(其实前文的后记部分也已指出,其实创建新工程也不是特别必要,可以让Mock类从被测类继承,但问题是这是真的Mock吗?);那么,是不是一个测试工程只能测一个类呢?还是这种方式本身就有问题呢?由于没有找到实际工程中测试代码、被测代码的文件组织方面的资料

2013-06-02 23:01:44

C++单元测试一:并非看上去那么简单——几个很实际的问题

理想与现实为Java和C#做单元测试,基本上都有比较统一的工具、模式可用,IDE的支持也非常到位;可是到了C++这里,一切就变的那样的“不走寻常路”,各种单元测试框架盛行,例如CppUnit, CppUnitLite, CxxUnit,Google Test等等,以及微软在VS2012中也加入了对原生C++代码单元测试的支持MSTest。面对如此诸多的测试框架,选择哪一个其实无所谓,只要顺手就

2013-05-31 20:47:48

shared_ptr的一些尴尬

shared_ptr在boost库中已经有多年了,C++11又为其正名,把他引入了STL库,放到了std的下面,可见其颇有用武之地;但是shared_ptr是万能的吗?有没有什么样的问题呢?本文并不说明shared_ptr的设计原理,也不是为了说明如何使用,只说一下在使用过程中的几点注意事项。智能指针是万能良药?智能指针为解决资源泄漏,编写异常安全代码提供了一种解决方案,那么他

2013-05-28 14:32:38

博客搬家

在CSDN注册账号很多年了,从来没打算开通博客,之前也零零散散在其他地方写过一些技术文章,但最近这两年都没维护了——太懒了。这两天有时间又有写东西的冲动,就准备了boost源码的一些文章,等再发到那个博客上才发现,自己上一篇文章已经是两年前的事儿了,太汗了。于是想干脆搬家吧,然后就开了这儿的博。所以,本贴以前的帖子,都是从那边搬过来的。有些可能太老,自己都记不清楚了。兴许后面自己会勤快点。

2013-05-24 09:17:55

boost.asio 学习笔记07——总结

至此,我们对boost.asio的基本体系结构以及在windows上的实现,做了一个梳理;个人认为常用到的操作及其实现都涉及到了。当然,本文并没有对非Win环境下的实现、SSL,串口、buffer管理、以及如何使用asio等进行讨论。 针对asio,个人也是刚刚接触正在学习,觉得要想使用好他,还是首先要了解socket的基本操作,在windows环境下,还要了解IOCP模型,然后才能用好它

2013-05-23 14:04:13

boost.asio 学习笔记06——其他

asnyc_read VS. async_read_some VS. async_receiveasync_read是一个全局函数;后面两个则于ip::tcp::socket的成员个函数;都可以用来异步读取操作,他们有什么样的差别呢。先来看async_read_some和async_receive,他们的文档说明如下:async_read_some:Start an asynchr

2013-05-23 14:04:10

boost.asio 学习笔记05——asio的windows实现

Operation还记得前面我们在分析resolver的实现的时候,挖了一个关于operation的坑?为了不让自己陷进去,现在来填吧;接下来我们就来看看asio中的各种operation。 和前面提到过的service的类似,这里的operation也分为两大系:IOCP Enable和Disable系列。这里我们重点关注下图中红色部分表示的IOCP Enable系列oper

2013-05-23 14:04:08

boost.asio 学习笔记04——asio的体系结构

三层类关系图根据前面的分析,我们知道asio有着这样的逻辑:参考STL,提供basic模版,对外使用basic模版的实例提供接口。basic模版将具体操作委托给下层服务类完成。下层服务类再把操作委托给平台相关的服务类。 鉴于此,我们将asio体系划分为三层:io object层,basic_模版类层,服务层。第一层:io object层,作为应用程序直接使用的对象,

2013-05-23 14:04:05

boost.asio学习笔记03——io objects

asio的文档,告诉我们在声明一个io_service对象之后,就可以创建io对象去干活了,例如:int main(int argc, char* argv[]){   boost::asio::io_service io_service;    tcp::resolver resolver(io_service);   tcp::resolver::que

2013-05-23 14:04:03

boost.asio 学习笔记02——io_service类

从第一个boost.asio的教程开始,boost文档就一直在告诉我们:使用boost.asio第一步就是要创建一个io_service对象。那么io_service是个什么东西呢? boost.asio文档说,io_service为下面的这些异步IO对象提供最核心的IO功能:boost::asio::ip::tcp::socketboost::asio::ip::tcp::acc

2013-05-23 14:04:00

boost.asio 学习笔记01——概述

boost.asio为异步IO提供了一份标准的C++的跨平台实现,特别针对网络IO提供了良好的支持,使之成为C++网络编程利器。关于如何使用asio,boost文档中已经有了详尽说明,而且附带的例子也很直观,我们不必再造轮子;本文则结合asio的基本应用,侧重于源代码的分析,特别是针对windows平台上的实现进行分析。 纵观asio源码,在统一的接口层之下,asio提供了大量的类来支持不同的

2013-05-23 14:03:58

QT:“无法定位程序输入点……”

装了Qt之后,要把Qt的安装目录映射到Path环境变量里面,主要是这几个目录:a. D:\ProgramFiles\Qt.2010.05\qt\bin;b. D:\ProgramFiles\Qt.2010.05\bin;c. D:\ProgramFiles\Qt.2010.05\mingw\bin;需要注意的一点是:目录a和b的需要按照a,b的顺序写下来,否则在资源管理器运行qt程

2013-05-23 14:03:55

C++:获取类成员的偏移量

第一种方式是MFC里使用广泛的宏:对空对象成员取地址#define OFFSET(structure, member) ((int)&((structure*)0)->member); 正如我们平时通过某对象的地址指针访问某个成员变量一样,这里只是强制使用0作为该地址,但区别是并没有通过该地址去访问成员变量,而只是用&操作符来获取该成员变量的地址,所以不会出现访问违规的情况。objec

2013-05-23 14:03:53

[转载]深入了解字符集和编码

转自:http://hideto.javaeye.com/blog/97803   关键字: 字符集 编码 一、什么是字符集?什么是编码? 字符(Character)是文字与符号的总称,包括文字、图形符号、数学符号等。 一组抽象字符的集合就是字符集(Charset)。 字符集常常和一种具体的语言文字对应起来,该文字中的所有字符或者大部分常用字符就构成了该文字的字符集,比如英文字

2013-05-23 14:03:51

Eclipse+CDT+MinGW+QT开发环境搭建

本人使用的是Eclipse+CDT+MinGW+QT作为开发环境,简单描述一下此环境的搭建。第一步:下载Eclipse。从http://www.eclipse.org/downloads/随便下载一个Eclipse,注意如果直接下载的是for C++的就可以省略第二步了。下载完成后直接解压就可以使用了。第二步:下载安装CDT。从http://www.eclipse.org/cdt/下载CD

2013-05-23 14:03:48

Boost 库的编译

-->-->-->-->-->-->编译环境    编译器:MinGW(4.4)Path:MinGW下的bin目录加到系统PATH路径 编译工具:bjam.exeBoost使用bjam来编译代码(bjam调用编译器),bjam.exe可以从boost网站下载,也可以自己从源代码编译出来。不过推荐从网站下载,因为方便。为进行编译,Bja

2013-05-23 14:03:46

UML中的“关系”总结

UML中,事物之间的联系方式,无论是物理上的,还是逻辑上的,都用“关系(relationship)”来建模。在面向对象的建模中,将“关系”细分为三种:依赖、泛化、关联。下面分别说明。 1、 依赖(dependency)依赖是一种使用关系。它表示一个事物的变化会影响到所有使用它的事物的行为。在UML图形表示法中,依赖用一个带方向的虚线来表示,箭头指向被依赖的事物。

2013-05-23 14:03:44

如何传递类成员函数的指针

需求:在类A里面,有一组规格相同的函数; 类B中有一个成员F为A中成员函数的指针,在构造B对象时对该成员F进行初始化,然后在Do函数中调用此函数指针所对应的函数。为实现这个目的,需要怎么做呢。 Class AVoid F1();Void F2();Void F3(); 

2013-05-23 14:03:42

初学S60,常见问题记录

最近开始学习S60,从搭建环境到第一个Helloworld程序出世,期间遇到了不少问题,再同事的帮助以及Google的强力支持下,逐一得到解决,下面逐一做一个记录。1出现“Cannot start ECMT Manager”错误提示框                           原因:在安装Symbian S60 3rd Edition FP1 SDK时,默认识

2013-05-23 14:03:39

查看更多

勋章 我的勋章
    暂无奖章