gpt4 book ai didi

c++ - 将函数参数从 EXPECT_CALL 保存到模拟方法

转载 作者:行者123 更新时间:2023-12-05 04:28:25 31 4
gpt4 key购买 nike

我有一个类通过调用 subscribe(callbackfunction) 来“订阅”来自组件的信号。我现在正尝试通过保存回调并稍后向其发送数据以测试该组件的其他部分来使用 gtest/gmock 测试此行为。

测试代码:

using callback = std::function<void(const int*)>;
callback cb;

EXPECT_CALL(*mock_data, Subscribe).WillOnce(SaveArg<0>(cb));

gmock 代码(mock_data):

MOCK_METHOD(bool, Subscribe, (std::function<void(const int*)> cb), (const));

我从编译器那里得到这个:

error: cannot convert ‘testing::internal::SaveArgAction<0, std::function<void(const int*)> >’ to ‘const testing::Action<bool(std::function<void(const int*)>)>&’

有没有办法真正做我想做的事?

最佳答案

SaveArg<N>(pointer) 需要一个位置/指针来存储参数。

EXPECT_CALL(*mock_data, Subscribe).WillOnce(SaveArg<0>(&cb));

关于c++ - 将函数参数从 EXPECT_CALL 保存到模拟方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72612393/

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