gpt4 book ai didi

unit-testing - 如何使用 gmock 模拟 std::function?

转载 作者:行者123 更新时间:2023-11-28 21:09:03 26 4
gpt4 key购买 nike

我的类的构造函数是

A( ...
std::function<bool(const std::string&, const std::string&)> aCallBack,
... );

我想用 EXPECT_CALL 来测试一下。这个回调来自另一个 B 类。我创建了一个模拟

class BMock : public B
{
MOCK_METHOD2( aCallBack, bool(const std::string&, const std::string&) );
}

然后我试了一下

B *b = new B();
std::function<bool(const std::string&, const std::string&)> func =
std::bind(&B::aCallBack, b, std::PlaceHolders::_1, std::PlaceHolders::_2);

还是不行。如何获取 gmock 对象的函数指针?

谢谢!!

最佳答案

如果你想使用 mock 来跟踪调用和设置返回值,你可以使用 MockFunction .

using testing::_;
using testing::MockFunction;
using testing::Return;

MockFunction<bool(const std::string&, const std::string&)> mockCallback;

EXPECT_CALL(mockCallback, Call(_, _)).WillOnce(Return(false)); // Or anything else you want to do

A( ...
mockCallback.AsStdFunction()
...);

关于unit-testing - 如何使用 gmock 模拟 std::function?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42521088/

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