Ich habe Java schon einmal benutzt und konnte alles mit Sonnenfinsternis machen. Da ich Delphi verwenden möchte, um eine Instant -Messaging -Software zu ändern, frage ich mich, wie ich das Rekonstruktions- und Einheiten -Testsystem in Delphi verschieben kann. In dem Buch kann das Hinzufügen von Unit -Tests in den vorhandenen Code Ihr Verständnis des Codes vertiefen und als Grundlage für die Verbesserung des Codes dienen. Um eine so agile Plattform aufzubauen, habe ich einen kleinen Versuch mit Delphi2005 und Dunit unternommen und die folgenden Ergebnisse aufgezeichnet, um Ihnen mitzuteilen.
1. Laden Sie Delphi2005 herunter
Da Borland angesichts des Himmelspreises von Architekten und Unternehmensversionen keine professionellen Versionen in China verkauft, kann es nur eine D-Version aus dem Internet für den persönlichen Gebrauch herunterladen. DELPHI2005 ist relativ groß, und Update1 benötigt auch CD, daher wird empfohlen, BT zum Herunterladen der 2CD -Version zu verwenden. Die Samenadresse lautet wie folgt:
http://www.delphhifans.com/softview/821.html
2. Laden Sie die SP1 von DelPhi2005 herunter
Es wird gesagt, dass es nach dem Auftragen dieses Patches schneller sein kann, aber der Patch ist langsam zu installieren und Sie müssen noch eine CD verwenden. Die Download -Adresse lautet wie folgt:
http://www.delphhifans.com/softview/970.html
3. Laden Sie Dunit herunter
https://sourceforge.net/projects/dunit/
4. Installieren Sie DelPhi2005+SP1
Beachten Sie, dass ein Register in Keygen vorhanden ist. Bei der Installation müssen Sie gleichzeitig die Versionen .NET und Win32 von Delphi installieren, aber C# Builder spielt keine Rolle. Denn wenn Sie nur die Win32 -Version installieren, ist die Rekonstruktionsfunktion nicht verfügbar (dies ist ein Fehler in DelPhi2005, das sich beim Wiederaufbau von .NET als Ausnahmefenster manifestiert).
5. Vereinfachen Sie DelPhi2005
Da die .NET -Version im vorherigen Schritt gleichzeitig installiert wurde, wurde Delphi beim Start sehr langsam. Dies kann erreicht werden, indem die Registrierung geändert und einige IDE -Pakete gelöscht werden. Die spezifische Methode besteht darin, den Parameter -rxxx nach dem Delphi -Verknüpfungsziel, dh bds.exe -rxxx, hinzuzufügen. Dieses XXX ist für Sie angeben, und dann finden Sie diese verdammten Pakete in hkey_current_user/Software/Borland/xxx (dies ist der Name, den Sie ausgewählt haben. Beachten Sie, dass Sie es nicht zu sauber löschen können, wie andere von Win32 gereinigte Moleküle im Internet, da es für den Wiederaufbau nutzlos ist. Eine relativ einfache Liste, die ich nach mehrmaliger Experimentierung erhalten habe, lautet wie folgt
"$ (Bds) // bin // vclMenudesigner90.bpl" = "(nicht titled)"
"$ (Bds) // bin // Win32DebugProide90.bPl" = "(Ohne Titel)"
"$ (Bds) // bin // htmide90.bpl" = "HTML -Designer -Paket"
"$ (Bds) // bin // iteidew3290.bpl" = "Borland Integrierte Übersetzungsumgebung für Win32"
"$ (Bds) // bin // srcManide90.bpl" = "(nicht titled)"
"$ (Bds) // bin // todoide90.bpl" = "Borland Todo"
"$ (Bds) // bin // htmlHelp290.bpl" = "Borland htmlHelp Viewer"
"$ (Bds) // bin // ideFileFilters90.bpl" = "ide FileFilters"
"$ (Bds) // bin // startpageside90.bpl" = "Borland Start Seite IDE -Paket"
"$ (Bds) // bin // Refactoride90.bpl" = "Borland Core Refactoring Package"
"$ (Bds) // bin // dbkdebugide90.bpl" = "(nicht titled)"
"$ (Bds) // bin // exceptionDiag90.bpl" = "(Ohne Titel)"
"$ (Bds) // bin // bereitstellen90.bpl" = "Deployment Manager" "
"$ (Bds) // bin // plugview90.bpl" = "Pluggable Tree View -Paket"
"$ (Bds) // bin // coreProide90.bpl" = "Core IDE Pro Paket"
"$ (Bds) // bin // idetools90.bpl" = "Build Tools"
"$ (Bds) // bin // unittestide90.bpl" = "(nicht titled)"
"$ (Bds) // bin // historyide90.bpl" = "(ohne Titel)"
"$ (Bds) // bin // htmltidy90.bpl" = "Html Tidy Formatierer"
"$ (Bds) // bin // htmlfmt90.bpl" = "HTML Internal Formatatter"
"$ (Bds) // bin // mlcc90.bpl" = "Markup Language Code Completion Package"
"$ (Bds) // bin // delphivclide90.bpl" = "Delphi VCL Designer IDE -Paket"
"$ (Bds) // bin // DelphicoreProide90.bpl" = "(Ohne Titel)"
"$ (Bds) // bin // Win32Debugide90.bpl" = "(Ohne Titel)"
"$ (Bds) // bin // htmlide90.bpl" = "(nicht titled)"
"$ (Bds) // bin // delphide90.bpl" = "Delphi Win32 IDE -Persönlichkeit"
"$ (Bds) // bin // mtSpro90.bpl" = "(nicht titled)"
"$ (Bds) // bin // mtSent90.bpl" = "(Ohne Titel)"
"$ (Bds) // bin // ITEdenet90.bpl" = "Borland Integrated Translation Umgebung für .NET"
"$ (Bds) // bin // netimportwiz90.bpl" = "(nicht titled)"
"$ (Bds) // bin // dataExplorer90.bpl" = "(nicht titled)"
Obwohl es immer noch etwas langsam zu beginnen ist, kann es es endlich ertragen.
6. Dunit kompilieren und installieren
Verwenden Sie die Methode, die Sie kennen, um Dunit in DCU zu kompilieren, und stellen Sie sie in das von Ihnen angegebene Verzeichnis ein. Und fügen Sie dieses Verzeichnis dem Bibliothekspfad von Delphi Tools-> Umgebungsoptionen-> Delphi-Optionen-> Bibliotheks-Win32 hinzu.
Kompilieren Sie auch Dunit.exe
7. Erstellen Sie ein Projekt
Ich empfehle, die Schnittstelle und den Hintergrund beim Schreiben eines Delphi -Programms zu trennen, insbesondere um zwei Projekte, ein gewöhnliches VCL -Projekt und das andere DLL -Projekt, zu öffnen. Nein, nein, ich möchte nicht, dass Sie Code in DLL teilen. Dieses DLL -Projekt enthält Dateien, die alle Hintergrundinhalte sowie Tests auf dem Hintergrund sind. Die generierte DLL wird für Dunit verwendet, von dem Dunit den Test lesen und ausführen kann. Tatsächlich enthält das Projekt im GUI -Teil alle Dateien.
Das Projekt ist in drei Teile unterteilt: GUI, Kern und Testcore. Project One enthält GUI+Core und Projekt zwei umfasst Core+Testcore. Die Ausgabe von Projekt 1 ist das Win32Exe -Programm. Die zweite Ausgabe des Projekts ist das Win32Dll -Programm.
Dann können Sie diese beiden Projekte in eine Projektgruppe einbringen.
8. Tests schreiben
Projekt 1 unterscheidet sich nicht vom Schreiben eines Dephi -Programms. Die Tests sind in Engineering Nr. 2 geschrieben, und ich nenne den Namen Engineering Nr. 2 Core. Fügen wir dem Kern einen grundlegenden Test hinzu, um zu überprüfen, ob 1+1 2 entspricht.
TestCase erstellen
Unit testbasic;
Schnittstelle
Verwendung
Testframework;
Typ
TBasic = Klasse
öffentlich
Funktion add (a, b: Ganzzahl): Ganzzahl;
Ende;
TTestBasic = Klasse (tTestCase)
Privat
FBASIC: TBASIC;
öffentlich
Verfahrensaufbau;
Verfahren abtrennen;
veröffentlicht
Prozedurtestadd;
Ende;
Durchführung
Funktion tbasic.add (a, b: Ganzzahl): Ganzzahl;
Beginnen
Ergebnisse: = a + b;
Ende;
Prozedur tTestBasic.Setup;
Beginnen
FBasic: = tbasic.create;
Ende;
Verfahren tTestBasic.teardown;
Beginnen
Fbasic.free;
Ende;
Verfahren tTestBasic.TestAdd;
Beginnen
Checkequals (2, fBasic.Add (1, 1));
Ende;
Initialisierung
RegisterTest ('', testbasic.suite);
Ende.
Modifizieren Sie Core.bdproj (Kao, was seltsame Suffix)
Veränderung beginnt
Exporte
Registrierte Tests Name 'Test';
Ende.
Und fügen Sie Testframework im Abschnitt Verwendungszweck hinzu.
Dunit verwendet diese Exportfunktion, um den in der DLL registrierten TestCase zu finden.
9. Dunit laufen
Fügen Sie Dunit zum Tools -Menü hinzu, es ist viel bequemer. Es ist nur so, dass die Parameter schwer zu füllen sind. Ich habe das Makro im Inneren nicht benutzt, ich habe gerade den absoluten Weg gefüllt. Wenn Sie den absoluten Pfad wie ich ausfüllen, wählen Sie Dunit aus dem Menü "Tools" und können Sie direkt eine Testliste sehen und Sie werden ein grünes Licht angezeigt.
Wenn Sie dem Tools-Menü nicht Dunit hinzufügen, müssen Sie das aus dem Kernprojekt Core.dll zusammengestellte DLL aus dem Dateiauswahlfenster des Datei-Tests ermitteln.
————
Bisher gibt es sowohl Refactoring -Funktionen als auch Unit -Tests. Alles, was übrig bleibt, ist, Tests in vorhandenen Code hinzuzufügen und sie dann langsam zu refaktor.