测试 C++使用测试类对常用类进行编程
这可能是一个愚蠢的问题,但我会尽力而为。
我有一个简单的 C++ 程序,我需要为其构建测试。除了我实际使用的类之外,我还使用了 2 个类,这些类称为 WebServer 和 BusinessLogicLayer。
为了测试我自己的代码,我制作了这些类的我自己的版本,将虚拟数据提供给我的类以测试它的功能。
我需要知道一种方法,例如通过 makefile,如何告诉源代码使用测试类而不是通常使用的类。测试类位于不同的“测试器”c++ 文件中,并且测试器 c++ 文件也有自己的头文件。
问候
保罗
P.S.这可能是一个措辞糟糕的问题,但我不知道有什么更好的方式来提出我的问题。
This will probably be a bot of a waffly question but ill try my best.
I have a simple c++ program that i need to build testing for. I have 2 Classes i use besides the one i actually am using, these are called WebServer and BusinessLogicLayer.
To test my own code i have made my own versions of these classes that feed dummy data to my class to test it functionality.
I need to know a way of somehow, via a makefile for instance, how to tell the source code to use the test classes over the normally used classes. The test classes are in a different "tester" c++ file, and the tester c++ file also has its own header file.
Regards
Paul
P.S. This is probably a badly worded question, but i dont know any better way to put my question.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以定义抽象基类来声明组件的公共接口,然后在运行时将对象连接在一起(在
main()
或食物链中相当高的其他位置)。在测试中,您只需连接不同的对象即可。You can define abstract base classes that declare the public interfaces for your components, then wire the objects together at runtime (in
main()
or something else fairly high up in the food chain). In testing, you simply wire up different objects.要使用目录 ${SRC_DIR_1} 和 ${SRC_DIR_2} 中的源代码构建程序的调试和发布版本:
在“项目配置”对话框中,将目标名称指定为“program_name, program_name_debug”。 (将 program_name 替换为您的程序名称。)
要构建程序,请调用“make debug=X”,并将 X 替换为 0 或 1。
参考
To build debug and release versions of a program with source code in directories ${SRC_DIR_1} and ${SRC_DIR_2}:
In the Project Configuration dialog, specify the target name as "program_name, program_name_debug". (Replace program_name with the name of your program.)
To build the program, invoke "make debug=X" with X replaced by either 0 or 1.
Reference
为什么您的测试器代码有自己的头文件?您的测试代码应该与其模拟的代码具有相同的接口,并且使用相同的头文件可以避免很多麻烦。
无论如何,这会起作用:
Why does your tester code have a header file of its own? Your test code should have the same interface as the code it emulates, and using the same header file prevents a lot of headaches.
Anyway, this will work: