2017-08-29 9 views

Répondre

2

C'est la différence entre l'échec de TEST_CASE et l'échec d'une assertion individuelle. Les macros REQUIRE garantissent que les lignes suivantes ne sont pas exécutées en cas d'échec. Inversement, les macros CHECK peuvent marquer le cas de test comme un échec mais continuer.

Considérons cet exemple:

REQUIRE_NOTHROW(parseInput(validInput)); 
REQUIRE_THROWS(parseInput(errorInput)); 
REQUIRE_THROWS(parseInput(NULL)); 

Donc nous demandons explicitement que le passage d'entrée valide ne provoque pas une exception, mais une mauvaise entrée ne. Si nous n'utilisions pas la macro REQUIRE_NOTHROW(), le test échouerait, mais nous devrons alors déchiffrer l'endroit où il a échoué - une exception pourrait provenir d'autres lignes de code de test.