gpt4 book ai didi

c++ - 如何模拟谷歌模拟中的常量?

转载 作者:行者123 更新时间:2023-11-30 05:19:27 26 4
gpt4 key购买 nike

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

你好,我们如何在#define 下模拟一个变量?谷歌模拟 docs主要讨论方法和对象,但不讨论模拟常量。我能想到的最接近的是将调用委托(delegate)给假类,让它返回测试值。

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

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

谢谢。

最佳答案

#define 不是常量

它是一个(参见here 进一步阅读)。在任何 gmock 库得到“它的手指”之前,编译器就会启动并替换该 的所有出现。

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

从这个意义上说:没有办法 mock 根本不存在的“实体”。

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

从这个意义上讲:您最好退后一步,先了解这些基本要点,然后再做任何其他事情。

关于c++ - 如何模拟谷歌模拟中的常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41097182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com