Je programme un test unitaire avec le framework de test Google. Mais je veux vérifier si certaines assertions sont bien placées et utiles. Existe-t-il un moyen d'attraper une assertion dans le test Google?
Exemple de code sous test:
int factorial(int n){
assert(n >= 0);
//....
}
Et puis le test:
#include <gtest/gtest.h>
TEST(FactorialTest,assertNegative){
EXPECT_ANY_THROW({
factorial(-1);
});
}
Mais EXPECT_ANY_THROW
n'attrape pas l'assertion mais seulement les exceptions. Je cherche une solution pour attraper des assertions.
Le test Google fournit ASSERT_DEATH
, EXPECT_DEATH
et autres macros associées .
Cette question et Que sont les tests Google, les tests de décès sont les réponses des uns et des autres. Est-ce que cela en fait des doublons ou non? ;-)
EXPECT_FATAL_FAILURE (instruction, texte) et EXPECT_NONFATAL_FAILURE (instruction, texte) passera uniquement si 'instruction' appelle un échec ASSERT_x ou EXECT_x respectivement.
Ces déclarations passeront vos tests:
EXPECT_NONFATAL_FAILURE( EXPECT_TRUE( 0 ), "" ); EXPECT_FATAL_FAILURE( ASSERT_TRUE( 0 ), "" );