我对C ++和单元测试相当陌生,我现在正在学习使用Google Mock和Google Test来测试我正在使用的一些代码。有没有一种方法可以将Google Mock指向您的课程并让它自动为您的所有功能生成所有Google Mock方法?
有人告诉我他们认为这应该是可能的,但正如我刚才所说(几周前刚开始学习C ++)我不知道这是否可行。
答案 0 :(得分:4)
引用gmock文档:
如果这对你来说太多了,你会发现gmock_gen.py Google Mock的脚本/生成器/目录中的工具(由...提供) cppclean项目)很有用。此命令行工具需要您 安装了Python 2.4。你给它一个C ++文件和一个名称 在其中定义的抽象类,它将打印出的定义 你的模拟课。由于C ++语言的复杂性,这一点 脚本可能并不总是有效,但它可以非常方便
https://code.google.com/p/googlemock/wiki/ForDummies
因此,您可以将标头传递给python脚本,它将输出一个可以使用的模拟实现。根据我的经验,它并不总是100%正确,但修复相对微不足道,所以这个解决方案就是我自己使用的。
答案 1 :(得分:1)
"有没有一种方法可以将Gmock指向您的类,并让它自动生成所有函数的所有Gmock方法?"
嗯,我大部分时间都在做的是从界面复制一行
struct IFace {
int doThefancyOperatiion(std::string s, int i) = 0;
};
并将其更改为
struct MockIface {
MOCK_METHOD2(doThefancyOperatiion, int (std::string s, int i));
};
看起来可以使用sed
或任何其他相当不错的文本替换工具来完成。我并不知道某个特定的一个,这是为你做的。