gpt4 book ai didi

c++ - 使用 Google Mock 的 Mock 方法实现

转载 作者:太空狗 更新时间:2023-10-29 21:17:04 26 4
gpt4 key购买 nike

我在 mock Arduino millis使用 Google Mock 的方法。此方法返回自设备启动以来的毫秒数。我想在每次方法调用时返回增加的数字(范围从 0 到无穷大)。

到目前为止,我是这样模拟这个函数的:

EXPECT_CALL(*arduino, millis())
.WillOnce(Return(0))
.WillOnce(Return(1))
.WillOnce(Return(2))
// and so on...

但这是不切实际的。有没有更好的方法可以处理无限次调用?

最佳答案

您可以编写一个将返回递增数字的自定义操作,并在 WillRepeatedly 中使用它:

ACTION(ReturnIncreasingIntegers) {
static int n = 0;
return ++n;
}

EXPECT_CALL(*arduino, millis())
.WillRepeatedly(ReturnIncreasingIntegers());

但我不建议这样做。测试的确定性越低,就越难理解被测代码的行为。

关于c++ - 使用 Google Mock 的 Mock 方法实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33811119/

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