У меня есть код, который взаимодействует с файловой системой, используя boost
, которая выглядит как:Как высмеивать бросок за исключением?
FileMigrater::migrate() const {
//stuff
try {
boost::filesystem::create_direcotry(some_path_);
} catch(const std::exception& e) {
LOG(ERROR) << "Bad stuff happened";
return MigrationResult::Failed;
}
//more stuff
}
Я использую gmock
и gtest
писать модульные тесты для метода migrate
, и я хотел бы написать тест для случая где boost
выдает исключение. В идеале, я хотел бы написать модульный тест, который выглядит примерно так (синтаксис это будет неправильно, потому что я новый C++ в целом):
TEST_F(MyTest, boost_exception_test) {
ON_CALL(boost_mock, create_directory()).Throw(std::exception);
EXPECT_EQ(Migration::Failed, migrater.migrate());
}
Проблема заключается в том, что я не знаю, как для создания boost_mock
или даже если это правильный подход к проблеме.
Мой подход: Молча сидеть там и ваш аватар FACEPALM всякий раз, когда импульс бросает один такой исключение – sehe