2010-04-19 3 views
1

J'écris des tests unitaires dans UnitTest ++ et je veux écrire un tas de tests qui partagent des ressources communes. Je pensais que cela devrait fonctionner via leur configuration TEST_FIXTURE, mais il semble construire un nouvel appareil pour chaque test. Exemple de code:UnitTest ++ construire des appareils plusieurs fois?

#include <UnitTest++.h> 

struct SomeFixture { 
    SomeFixture() { 
     // this line is hit twice 
    } 
}; 

TEST_FIXTURE(SomeFixture, FirstTest) { 
} 

TEST_FIXTURE(SomeFixture, SecondTest) { 
} 

Je sens que je dois faire quelque chose de mal; J'avais pensé que le but de l'installation était que le code d'installation/démontage ne se produise qu'une seule fois. Ai-je tort? Y a-t-il autre chose que je dois faire pour que cela fonctionne comme ça?

Répondre

6

Le but d'un banc de test est de ne pas avoir à écrire le même code de configuration/démontage dans chaque test, pas de partager l'état. Si vous souhaitez partager l'état, vous pouvez simplement référencer une classe avec des champs statiques et des fonctions statiques dans vos tests, puis vous pouvez utiliser la macro TEST standard au lieu de TEST_FIXTURE.

+0

Ha! Je gagne par 10 secondes .... +1 :) –

+0

Bon, si c'est comme ça que ça doit marcher. Je vais admettre une petite déception; Je ne vois pas TEST_FIXTURE être aussi utile pour moi de cette façon, mais je suppose que je vais devoir vivre avec. Merci de l'avoir clarifié, de toute façon :) – Peter

2

le point entier d'avoir l'appareil était de telle sorte que la configuration/code teardown se produit qu'une fois

Non, le point de l'ensemble des appareils est pour l'appareil à répéter tous les tests. Ce que vous voyez est un comportement attendu et correct.