Ich beginne mit den DUnit-Tests, also entschuldige mich im Voraus für Anfängerfehler. Wenn ich versuchte, einfache Tests auszuführen, und der Compiler das SetUp meiner Testklasse ausführt, beendet es das Zurückgeben der Nachricht "kann Formular nicht erstellen". Derzeit sind keine MDI-Formulare aktiv '.DUnit-Test - Formular kann nicht erstellt werden. Derzeit sind keine MDI-Formulare aktiv
Nach einigen Recherchen fand ich einige Erklärungen, aber keine zu meinem Problem.
Das Problem scheint zu sein, wenn ich die Create-Methode meines Kindes Ursprung Klasse aufrufen - nach Herkunft meine ich die Klasse, wo ich alle Prozeduren und Funktionen zu testen haben, können wir es von TfrmFoo nennen. Und meine Testklasse sollte der TestTfrmFoo sein. Das TFrmFoo hat ein Elternteil mit einigen grundlegenden Codes, dem TfrmParentFoo.
Ich rufe die Methode wie folgt erstellen:
...
implementation
procedure TestTfrmFoo.SetUp;
begin
FfrmParentFoo := TfrmParentFoo.Create(nil);
FfrmFoo := TfrmFoo.Create(FfrmParentFoo);
end;
procedure TestTfrmFoo.TearDown;
begin
FfrmFoo.Free;
FfrmFoo := nil;
end;
...
Danach wird die Create-Methode der TfrmFoo Klasse aufgerufen wird und der folgende Fehler auftritt: "nicht Formular erstellen. Derzeit sind keine MDI-Formulare aktiv '.
Ich habe bereits versucht, das Erstellen meiner untergeordneten Klasse TfrmFoo zu überschreiben, indem ich die FormStyle-Eigenschaft auf 'fsNormal' statt 'fsMDIChild' und nichts setze. Ich habe auch ein paar Ideen über Schlaf (500) gefunden, aber das Problem geht weiter.
Edited: Nach dem Remy Lebeau
Beitrag habe ich den SetUp Test geändert, um das übergeordnete Formular zu erstellen, bevor das Kind rief, und als Parameter an das Erstellen Kind mit. Gleiche Fehlermeldung. Habe ich etwas falsch gemacht?
Weitere Tipps? Tks!
Danke, ich werde das versuchen. Der Nachteil besteht darin, dass alle Referenzen, die mit dem Elternteil kommen, manuell in der .dpr-Datei abgelegt werden müssen, sobald dies nicht automatisch erfolgt und ich keinen Weg gefunden habe, einen ganzen spezifischen Ordner abzubilden. – DTondin