J'ai le code qui interagit avec le système de fichiers en utilisant boost
qui ressemble à:Comment simuler le lancement d'une exception?
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
}
J'utilise gmock
et gtest
pour écrire des tests unitaires pour la méthode migrate
et je voudrais écrire un test pour le cas où boost
lève une exception. Idéalement, je voudrais écrire un test unitaire qui ressemble à (la syntaxe de ce sera mal parce que je suis nouveau C++ en général):
TEST_F(MyTest, boost_exception_test) {
ON_CALL(boost_mock, create_directory()).Throw(std::exception);
EXPECT_EQ(Migration::Failed, migrater.migrate());
}
Le problème est que je ne sais pas comment pour créer le boost_mock
ou même si c'est la bonne approche du problème.
Mon approche: il s'asseoir Silencieusement et votre avatar facepalm chaque fois boost lance une telle exception – sehe