繁体   English   中英

如何在 Google mock 中模拟常量?

[英]How to mock constants in Google mock?

Variable.h
....
#define BLAH = "blahstring"
.....

嗨,我们如何在#define 下模拟变量? 谷歌模拟文档主要讨论方法和对象,而不是 mocking 常量。 最接近我能想到的将调用委托给假 class 让它返回测试值。

我有带有变量列表的 header 文件,我想模拟它,以便在测试中调用 BLAH 时,我得到“mockblahstring”而不是“blahstring”。

任何示例代码都会有所帮助。

谢谢。

#define 不是常量

它是一个(见这里进一步阅读)。 编译器在任何 gmock 库获得“它的手指”之前很久就开始并替换该的所有出现。

换句话说:您编译的 object 不包含任何 BLAH“对象”。 它仅在您写下 BLAH 的所有地方包含相应的字符串。

从这个意义上说:在 mocking “实体”中没有办法不再存在。

真正的答案是:这是您绝对不应该将预处理器宏用作“常量”的众多原因之一。 因为,它们不是常量,仍有一些地方它们是有意义的,但绝对不是常量的替代品。

从这个意义上说:在做任何其他事情之前,你最好退后一步,了解这些基本要素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM