正在学习len holgate的一系列c++ unit test 文章,
代码作者用的vc6,我用的是vs2010
第一讲
http://www.lenholgate.com/blog/2004/05/practical-testing.html
目的:
他要为真实的项目遗留代码中的一个类做单元测试,因为他要解决一个bug。
而大部分教程里面的例子都太简单了,没有触及真实项目的复杂性。(同意)
代码:
解决方案编译通过;
他没有用测试框架,而是他们团队自己的一些测试辅助类
第二讲
http://www.lenholgate.com/blog/2004/05/practical-testing-2---the-first-test.html
目的:
找出一个类,为它写第一个测试。
此时,一般会发现该类引用了太多的其他类,因为耦合性太高了。(同意,这些是设计上的严重问题。)
代码
编译遇到了几个问题:
This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher
看了一系列文章,做了一系列尝试后,受到此文 http://bbs.csdn.net/topics/340231391第5楼的启发,
发现是项目属性->C++->预处理器设置了一个变量_WIN32_WINNT=0x400,去掉它就好了
但是还是报一系列链接错误,把被测类所在的项目生成的lib及其引用项目生成的.lib都拷贝到测试主项目目录,并且在资源管理器把这些lib都添加到测试主项目就ok了。
运行测试主项目exe, 测试用例全部通过
第三讲
编译注意事项:
test.cpp所在项目要把其他项目生成的lib拷到其所在目录,并在资源管理器拽到该项目中
在另一个项目,需要加一个空的stdafx.h
有个项目属性->C++->预处理器设置了一个变量_WIN32_WINNT=0x400,去掉它