У меня есть классы следующим образом.
Я пытаюсь внедрить зависимость, но функция получает указатель на функцию.
Как установить Ожидание для функции 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_;
}
Вот мой смоделированный объект с моим тестом
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
}
Я не знаю, как установить ожидание для этого метода.И он вызывается во время загрузки файла.Что приводит к неинтересному предупреждению о вызове функции.