Konvertieren von DUnit-Tests in DUnitX
Nach oben zu Überblick über DUnitX
Die Konvertierung von DUnit in DUnitX ist relativ einfach. DUnit.DUnitCompatibility.pas enthält eine TTestCase-Klasse mit allen Check(X)-Methoden. Diese Methoden sind als veraltet gekennzeichnet und werden dadurch an die neue Assert-Methode delegiert.
Führen Sie diese Schritte aus, um DUnit-Code in DUnitX zu konvertieren:
- Ersetzen Sie in der uses-Klausel
TestFramework
- durch
DUnitX.TestFramework,DUnitX.DUnitCompatibility;
- Ändern Sie die Registrierung in
TDUnitX.RegisterTestFixture(TYourTestClass)
Aktivieren der Stack-Verfolgungsunterstützung
Sie können die Stack-Verfolgungsunterstützung für DUnitX mit Ihrem DUnit-Code aktivieren. Dazu hat DUnitX eine DUnitX.StackTrace.inc-Datei. Sie müssen die Kommentarzeichen um die Definition des Providers, den Sie verwenden möchten, entfernen. Wenn Sie einen eigenen Stack-Verfolgungs-Provider angeben möchten, implementieren Sie IStacktraceProvider und registrieren ihn mit
TDUnitXIoC.DefaultContainer.RegisterType<IStackTraceProvider,TYourProvider>;
Unterschiede zwischen DUnitX und DUnit
DUnitX und DUnit verwenden eine abweichende Terminologie. In der folgenden Tabelle sind die Unterschiede aufgeführt:
Funktion | DUnit | DUnitX |
---|---|---|
Testbasisklasse |
TTestCase |
Keine |
Testmethode |
Published |
Published oder mit [Test] dekoriert |
Setup-Methode für Gruppen |
NV |
Dekoriert mit [SetupFixture] oder Konstruktor |
Test-Setup-Methode |
Überschreiben von Setup aus der Basisklasse |
Dekoriert mit [Setup] |
Test-TearDown-Methode |
Überschreiben von TearDown aus der Basisklasse |
Dekoriert mit [TearDown] |
Namespaces |
Durch Registrierungsparameter (String) |
Unit-Namen (durch Punkt begrenzte Namespaces) |
Datengesteuerte Tests |
NV |
Dekoriert mit [TestCase(Parameter)] |
Annahmen |
Check(X) |
Assert-Klasse |
Annahmen für Containers(IEnumerable<T>) |
Manuell |
Assert.Contains, Assert.DoesNotContain, Assert.IsEmpty |
Annahmen mit regulären Ausdrücken |
NV |
Assert.IsMatch (XE2 oder später) |
Stack-Verfolgungsunterstützung |
Jcl |
Jcl, madExcept 3, madExcept 4, Eurekalog 7 |
Prüfung auf Speicherlecks |
FastMM4 |
FastMM4 (in Vorbereitung) |
IoC-Container |
Verwenden Sie Spring oder andere |
Einfacher IoC-Container integriert |
Konsolenprotokollierung |
Integriert |
Integriert (stille oder ausführliche Modi) |
XML-Protokollierung |
Integriert (eigenes Format) |
Integriert – Gibt mit NUnit kompatibles XML aus |