Я пишу юнит-тесты для своего класса, используя gtest / gmock. Компиляция кода модульного теста не удалась.
фиктивная декларация
MOCK_METHOD2(GetFilesFromDirectory, std::shared_ptr<std::list<WIN32_FIND_DATAW>>(const std::wstring &directory, std::function<bool(const WIN32_FIND_DATAW &)> filter));
Затем я пишу EXPECT_CALL для этого метода в тестовом примере другого метода, как показано ниже, и компиляция не удалась.
std::function<bool(const WIN32_FIND_DATAW &)> filesFilter = [](const WIN32_FIND_DATAW &fileData) -> bool {
return true;
};
EXPECT_CALL(*mock, GetFilesFromDirectory(std::wstring(L"testDirectory"), filesFilter)).WillOnce(Return(fileListPtr));
Я получаю ошибку
Ошибка C2678 двоичная '==': не найден оператор, который принимает левый операнд типа 'const std :: function' (или нет приемлемого преобразования)
Я хотел бы знать, почему возникает эта ошибка и как я могу это исправить.