![]() |
DUnit: FillCombobox testen -> no parent
Hallo,
ich stehe gerade auf dem Schlauch. In einem TestCase geht es um den Test einer ComboBoxFüllRoutine (jaja).
Delphi-Quellcode:
Was gebe ich als Parent an ?
procedure FillComboBox(ACB: TComboBox);
begin ACB.Items.Clear; // no parent end; // Test-Unit procedure TTestCase.Test_FillComboBox; var CB: TComboBox; begin CB := TComboBox.Create(nil); CB.Parent := ??? FillComboBox(CB) end; Application.MainForm hat schon mal nicht geklappt. PS: Ist nicht meine Routine, ich muss sie nur Testen ... Danke Heiko |
AW: DUnit: FillCombobox testen -> no parent
Einfache Lösung: ein leeres Form definieren, und seine Unit der Testcase-Unit hinzufügen. Im Setup eine Instanz des Forms erzeugen, und einer Instanzvariable zuweisen (MyEmptyForm := TEmptyForm.Create;), diese Forminstanz kann dann im Testfall als Owner angegeben werden:
CB := TComboBox.Create(MyEmptyForm); Dann muss der Parent nicht explizit angegeben werden. p.s. Im TearDown das Form wieder freigeben. |
AW: DUnit: FillCombobox testen -> no parent
Du kanst ja ein Dummy-Fenster erzeugen:
Delphi-Quellcode:
var
CB : TComboBox; WN : TForm; begin WN := TForm.Create(nil); try CB := TComboBox.CreateParented(WN.Handle); CB.Name := 'Combobox1234'; CB.Items.Clear; finally WN.Free; end; end; |
AW: DUnit: FillCombobox testen -> no parent
Viel anders als schon vorgeschlagen wurde, würd ich es auch nicht machen.
Mich würde noch interessieren, ob noch auf andere Member der TComboBox zugegriffen wird, oder nur auf Items. Dann wäre nämlich ein Refactoring angebracht (dass du nicht wirklich glücklich mit dem Code bist, meine ich an deinen Anmerkungen zu erkennen). Außerdem würd mich interessieren, was du denn in dem Test abprüfen willst. |
AW: DUnit: FillCombobox testen -> no parent
Hallo,
danke für die Antworten. Das mit dem Dummy-Form klingt gut. Ich hatte jetzt erst mal die TCombobox durch TStrings getauscht und den Code entsprechend geändert. Das klappt. Danke Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz