AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Unit testen von Timer gesteuerem Code

Ein Thema von TurboMagic · begonnen am 15. Feb 2021 · letzter Beitrag vom 18. Feb 2021
Antwort Antwort
Der schöne Günther

Registriert seit: 6. Mär 2013
6.201 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Unit testen von Timer gesteuerem Code

  Alt 15. Feb 2021, 18:04
Du hast dir doch die Erklärung schon selbst gegeben:

dann kommt
das Finalization der Log-Klassen Unit mit Freigabe des Log-Objektes vor der Freigabe des
Interfaces!
DUnit wird wohl so funktionieren dass bis zum bitteren Ende eine Instanz deiner Testklasse vorliegt, und da zeigt die Referenz halt noch auf dein IGedöns .

Ich würde
  1. Diese Log-Meldung im Destruktor optional/abschaltbar machen. Hier scheinst du sie ja auch nicht zu brauchen
  2. Das meinGedöns := nil im TearDown() drin lassen. Ich könnte mich irren, aber ich meine das brauchst du auch insbesondere, wenn du mit deinen Unit-Tests Speicherlecks finden willst, da vergleicht er ja im Endeffekt auch nur "Vor SetUp()" mit "nach TearDown()" und wenn am Schluss mehr da ist als vorher war, dann ist es ein Speicherleck.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.155 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Unit testen von Timer gesteuerem Code

  Alt 18. Feb 2021, 15:36
Wie Günter schon geschrieben hat. Ein TimeService ist immer hilfreich.
Man kann auch einen normalen Event nehmen ohne Spring und nutzt den WaifFor(TimeOut) davon, so
kann man zwei Fälle abdecken. 1.) Event is gekommen oder 2. TimeOut.
Ich gebe dann gerne eine Procedure mit, das sieht dann so aus:
Delphi-Quellcode:
var
  WasCalled : boolean;
  E : TEvent;
  R : TWaitResult;
begin
  WasCalled := false;

  E := DoSomeTing(Procedure
    begin
      WasCalled := true;
    end);

  R := E.WaitFor(5000);

  if R = wrSignaled
    then Assert.IsTrue(WasCalled)
    else Assert.Fail('TimeOut'); // or error

  E.Free;
end;
Ich hoffe ich hab Dich richtig verstanden...
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.075 Beiträge
 
Delphi 12 Athens
 
#3

AW: Unit testen von Timer gesteuerem Code

  Alt 18. Feb 2021, 16:04
Hallo,

ich hab' mir jetzt einen Timer mit Interface drumherum gebaut.
Der hat das Enable gewrappt und ein zusätzliches Flag für den Unit Test.
Damit lege ich fest, ob OnTimer des Timers über den Timer kommen soll
(regulärer Betrieb) oder wenn eine bestimmte "Operation ist zuende"
Methode aufgerufen wird (Unit Test Betrieb), die im normalen Betrieb
einfach nichts tut.

Funktioniert für mich.

Grüße und Danke
TurboMagic
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:52 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