Sup*_*Fly 5 c++ callback googletest
我有一个类通过调用 subscribe(callbackfunction)“订阅”来自组件的信号。我现在尝试使用 gtest/gmock 测试此行为,方法是保存回调并稍后向其发送数据以测试该组件的其他部分。
\n测试代码:
\nusing callback = std::function<void(const int*)>;\ncallback cb;\n\nEXPECT_CALL(*mock_data, Subscribe).WillOnce(SaveArg<0>(cb));\nRun Code Online (Sandbox Code Playgroud)\ngmock代码(mock_data):
\nMOCK_METHOD(bool, Subscribe, (std::function<void(const int*)> cb), (const));\nRun Code Online (Sandbox Code Playgroud)\n我从编译器得到这个:
\nerror: cannot convert \xe2\x80\x98testing::internal::SaveArgAction<0, std::function<void(const int*)> >\xe2\x80\x99 to \xe2\x80\x98const testing::Action<bool(std::function<void(const int*)>)>&\xe2\x80\x99\nRun Code Online (Sandbox Code Playgroud)\n有没有办法真正做我想做的事?
\nSaveArg<N>(pointer)需要一个存储参数的位置/指针。
EXPECT_CALL(*mock_data, Subscribe).WillOnce(SaveArg<0>(&cb));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
960 次 |
| 最近记录: |