Comment convertir les tests DUnit en DUnitX
Remonter à Présentation de DUnitX
La conversion de DUnit en DUnitX est relativement simple. DUnit.DUnitCompatibility.pas comprend une classe TTestCase ayant toutes les méthodes Check(X). Elles sont marquées comme obsolètes, et sont déléguées à la nouvelle méthode Assert.
Pour convertir du code DUnit en DUnitX, procédez comme suit :
- Dans la clause uses, remplacez
TestFramework
- par
DUnitX.TestFramework,DUnitX.DUnitCompatibility;
- Changez le recensement en
TDUnitX.RegisterTestFixture(TYourTestClass)
Activation de la prise en charge du suivi de pile
Vous pouvez activer la prise en charge du suivi de pile pour DUnitX en utilisant votre code DUnit. Pour cela, DUnitX comprend un fichier DUnitX.StackTrace.inc. Vous devez décommenter la définition du fournisseur que vous souhaitez utiliser. Si vous souhaitez fournir votre propre fournisseur de suivi de pile, implémentez alors IStacktraceProvider et recensez-le avec
TDUnitXIoC.DefaultContainer.RegisterType<IStackTraceProvider,TYourProvider>;
Quelles sont les différences entre DUnitX et DUnit ?
La terminologie de DUnitX est différente de celle de DUnit. Le tableau suivant montre les différences :
Fonctionnalité | DUnit | DUnitX |
---|---|---|
Classe test de base |
TTestCase |
Aucune |
Méthode de test |
Publiée |
Publiée ou décorée avec [Test] |
Méthode Setup de fixture |
NA |
Décorée avec [SetupFixture] ou un constructeur |
Méthode Setup de test |
Redéfinir Setup à partir de la classe de base |
Décorée avec [Setup] |
Méthode TearDown de test |
Redéfinir Teardown à partir de la classe de base |
Décorée avec [TearDown] |
Espaces de nommage |
A travers le paramètre de recensement (chaîne) |
Noms d'unités (les points délimitent les espaces de nommage) |
Tests pilotés par les données |
NA |
Décorée avec [TestCase(paramètres)] |
Assertions |
Check(X) |
Classe d'assertion |
Assertions sur Containers(IEnumerable<T>) |
Manuelles |
Assert.Contains, Assert.DoesNotContain, Assert.IsEmpty |
Assertions utilisant des expressions régulières |
NA |
Assert.IsMatch (XE2 ou version ultérieure) |
Prise en charge du suivi de pile |
Jcl |
Jcl, madExcept 3, madExcept 4, Eurekalog 7 |
Vérification des pertes mémoire |
FastMM4 |
FastMM4 (sous construction) |
Conteneur IoC |
Utiliser Spring ou autre |
Conteneur IoC simple intégré |
Consignation vers la console |
Intégrée |
Intégrée (mode silencieux ou commenté) |
Consignation vers XML |
Intégrée (format propre) |
Intégrée - Sorties NUnit compatibles xml |