自动生成Google Mock方法?

问题描述 投票:0回答:3

我对 C++ 和单元测试相当陌生,我现在正在学习使用 Google Mock 和 Google Test 来测试我正在使用的一些代码。有没有一种方法可以将 Google Mock 指向您的类并让它自动为您的所有函数生成所有 Google Mock 方法,而不是手动编写所有 Google Mock 方法?

有人告诉我他们认为这应该是可能的,但由于我是新手(几周前才开始学习 C++),我不知道这是否可能。

c++ methods googletest googlemock
3个回答
5
投票

引用gmock文档:

如果这对你来说工作量太大了,你会发现 gmock_gen.py Google Mock 的 scripts/generator/ 目录中的工具(由 cppclean 项目)很有用。该命令行工具要求您 安装了Python 2.4。你给它一个 C++ 文件和一个名称 其中定义的抽象类,它会打印该类的定义 为您模拟课。由于C++语言的复杂性, 脚本可能并不总是有效,但当它有效时它会非常方便

https://code.google.com/p/googlemock/wiki/ForDummies

因此,您只需将标头传递给 python 脚本,它将输出一个可供使用的模拟实现。根据我的经验,它并不总是 100% 正确,但修复相对简单,所以这个解决方案是我自己使用的。


1
投票

“有没有办法将 Gmock 指向您的类并让它自动为您的所有函数生成所有 Gmock 方法,而不是手动编写所有 Gmock 方法?”

嗯,我大部分时间所做的就是从界面复制一行

 struct IFace {
     int doThefancyOperatiion(std::string s, int i) = 0;
 };

并将其更改为

 struct MockIface {
       MOCK_METHOD2(doThefancyOperatiion, int (std::string s, int i));
 };

看起来可以使用

sed
或任何其他相当不错的文本替换工具来完成。不,我不知道有一个特定的,可以为你做到这一点。


0
投票

这个脚本:I2Mock对于自动生成 Google 和 Turtle 模拟很有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.