c++ - 如何在模拟期望中调用 const std::function<> 和参数?

标签 c++ unit-testing c++11 googlemock

我有像这样的模拟函数:

virtual void MyClass::foo(const std::function<void()>& callback);

我想为 foo 设置期望:

EXPECT_CALL(MyClassMock, foo(testing::_));

然后我想在满足期望时调用收到的回调。

如何使用 gmock 做到这一点?

最佳答案

选项 #1

EXPECT_CALL(MyClassMock, foo(testing::_))
    .Times(1) 
    .WillOnce(testing::InvokeArgument<0>());

选项 #2

EXPECT_CALL(MyClassMock, foo(testing::_))
    .Times(1)
    .WillOnce(testing::Invoke([](std::function<void()> f){f();}));

关于c++ - 如何在模拟期望中调用 const std::function<> 和参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40929462/

相关文章:

c++ - 为什么 electric fence/Valgrind 无法捕获此缓冲区溢出问题?

c# - 有可能制作一个可以在多种语言中使用的库吗?

c++ - 如何在 C++ 中获得直接键盘输入?

java - Junit 在通过测试时抛出警告

c++ - valgrind 中函数指针的读取大小无效

c++ - 使用 STL multimap 为选择性项目赋值

objective-c - 信号量等待导致 AFNetworking 阻塞?

angularjs - 在 angularJS 的 karma-jasmine 单元测试中更改语言环境

c++ - std::thread 线程在对象中分离出来,它什么时候终止?

c++ - 我应该只对构造函数和移动运算符写 noexcept 吗?