自动生成Google模拟方法?

时间:2015-06-04 18:06:17

标签: c++ methods googletest googlemock

我对C ++和单元测试相当陌生,我现在正在学习使用Google Mock和Google Test来测试我正在使用的一些代码。有没有一种方法可以将Google Mock指向您的课程并让它自动为您的所有功能生成所有Google Mock方法?

有人告诉我他们认为这应该是可能的,但正如我刚才所说(几周前刚开始学习C ++)我不知道这是否可行。

2 个答案:

答案 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或任何其他相当不错的文本替换工具来完成。我并不知道某个特定的一个,这是为你做的。