什么是 MockCpp?
MockCpp 是一个轻量级的 C++ 单元测试与模拟(mocking)框架,支持对函数、方法甚至全局函数进行打桩(stubbing)和行为验证,适用于 Windows 和 Linux 平台。
准备工作
- 安装 Visual Studio(建议 2019 或更高版本)
- 从 GitHub 克隆 MockCpp 仓库:https://github.com/sinojelly/mockcpp
- 确保已安装 C++ 开发工具(包括 MSVC 编译器)
在 VS 中编译 MockCpp
- 打开 Visual Studio,选择“创建新项目” → “空项目”。
- 将 MockCpp 源码目录中的
src和include文件夹复制到项目根目录。 - 在解决方案资源管理器中,右键点击项目 → “添加” → “现有项”,将
src下所有.cpp文件加入项目。 - 在项目属性中设置:
- C/C++ → 常规 → 附加包含目录:添加
$(ProjectDir)include - 预处理器定义:添加
MOCKCPP_EXPORTS(如需生成 DLL)
- C/C++ → 常规 → 附加包含目录:添加
- 编译项目,生成静态库(.lib)或动态库(.dll)。
编写测试示例
创建一个测试文件 test_example.cpp:
#include <mockcpp/mockcpp.hpp>
#include <mockcpp/Asserter.h>
MOCK_GLOBAL_FUNCTION(int, add, int, int);
int main() {
MOCK(add).stubs().will(returnValue(10));
ASSERT_EQ(10, add(1, 2));
return 0;
}
将此文件加入测试项目,并链接之前编译的 MockCpp 库即可运行。
常见问题
- 链接错误? 确保 MockCpp 的编译配置(Debug/Release、x86/x64)与测试项目一致。
- 找不到头文件? 检查“附加包含目录”是否正确指向
include文件夹。 - Mock 全局函数失败? 确保被测代码通过头文件声明函数,且未内联。