我有以下课程。
我试图注入依赖关系,但是一个函数正在使用一个函数指针。
如何设置功能OnFileLoaded
的期望值?
我希望代码可以清除我的问题。
Class Dependency
{
void LoadFile()
{this->SignalFileLoaded();}
void SignalFileLoaded()
{
if (on_file_loaded_){on_file_loaded_();}
}
private:
std::function<void()> on_file_loaded_;
}
//////////////////////
class Test<typename T>
{
Test()
{
obj_dep->OnFileLoaded([this]() {
SignalFileLoaded();
});
}
void OnFileLoaded(std::function<void()> const &f)
{on_file_loaded_ = f;}
void SignalFileLoaded()
{
if (on_file_loaded_)
{
on_file_loaded_();
}
}
Void LoadFile()
{ this->SignalFileLoaded();}
void SetDependency(std::shared_ptr<T> obj)
{ obj_dep = obj;}
private:
std::shared_ptr<T> obj_dep;
std::function<void()> on_file_loaded_;
}
这是我的测试对象。</ p>
MockTest
{
MockTest();
MOCK_METHOD1_T(OnFileLoaded,void(std::function<void()>));
MOCK_METHOD0_T(LoadFile,void());
}
TEST(testing_mock , signal_testing)
{
std::shared_ptr<MockTest> mocked_test;
Test<MockTest> testObj;
//How to set EXPECT_CALL for OnFileLoaded in this scenario
}
我不知道如何为这种方法设置期望值。它在文件加载期间被调用。导致无趣的函数调用警告。