2009-10-18 8 views

Répondre

3

Ce n'est significatif que dans les tests unitaires, car son but est d'alerter le framework de tests unitaires qu'un test a échoué, puis de continuer. Si le framework de tests unitaires ne fonctionne pas, cela ne fonctionnera pas.

En dehors des tests unitaires, vous souhaiterez généralement utiliser un peu d'assert à la place.

+0

Merci, pour la réponse, j'ai mis à jour ma question. –

+0

Qu'est-ce que cela signifie exactement que "le cadre de test unitaire est en cours d'exécution". Cela signifie-t-il qu'il est aligné ou que nous sommes dans BOOST_AUTO_TEST_CASE? Que se passe-t-il si j'appelle BOOST_CHECK_EQUAL en dehors de BOOST_AUTO_TEST_CASE? (avec ou sans framework de test lié?) –

1

Si la réponse est "non", est là bibliothèque C++ qui me fournira toutes les macros comme CHECK_EQUAL, CHECK_CLOSE, etc.?

La réponse courte est non. La réponse la plus longue: Ces macros font partie de Boost.Test. Donc, si vous n'utilisez pas Boost.Test vous devrez rouler le vôtre.

+0

J'utilise le test boost. La première question est de savoir si je ne peux pas les utiliser en dehors de l'unité de test. –

+0

Importez les définitions (c'est-à-dire copiez-collez la partie spécifique des en-têtes qui définissent ces macros dans un en-tête distinct et ajoutez-les à votre projet, vous ne voudriez pas que Boost.Test soit livré avec votre code.) – dirkgently

0

Il est assez facile d'écrire cette fonctionnalité basée sur boost/assert ou cassert.
Notez, cependant, que les assertions peuvent nécessiter certaines définitions (telles que DEBUG)