![]() |
Einen TStringStream absichtlich zerstören
Tag auch.
Schreibe grade Unittests und brauche dazu TStringStream, in dem wirklich nichts sinnvoll Interpretierbares steht. Kennt jemand eine Methode einen Stream vollends zu zerschießen? |
AW: Einen TStringStream absichtlich zerstören
Delphi-Quellcode:
Ich schätze, nun steht nichts sinnvolles drin. Du kannst aber in den string auch etwas nicht Sinnvolles reinschreiben.
Procedure SomeProcedureOrMethod;
var s : String; st : TStringStream; begin setLength(s,1024); st := TStringStream.Create(s); Nebenbei: Unittests mit Stringstreams, 'in dem wirklich nichts sinnvoll Interpretierbares steht' ist kein Unittest, sondern Unittestroulette. Lass es und schreib etwas deterministisch sinnloses rein. |
AW: Einen TStringStream absichtlich zerstören
Geht es darum eine zerstörte Stream-Instanz zu erkennen oder um Sinnloses im Stream?
Eine zerstörte Instanz macht allerdings keinen Sinn und richtig zuverlässig testbar ist es auch nicht. Zum Sinnlosen hat sich mein Vorredner schon ausgelassen, dem ich nichts konstruktives hinzufügen kann ;) |
AW: Einen TStringStream absichtlich zerstören
Ich bräuchte eine zerstörte Stream-Instanz.
Ich will vorsätzlich eine Exception auslösen und dachte, damit würde ich es schaffen. Das das Ganze ein wenig an Roulette dacht ich mir schon. Nur will ich daraus Russisch-Roulett mit 8 Kugeln machen. |
AW: Einen TStringStream absichtlich zerstören
Das Problem bei solchen Sachen ist, dass es mehr oder weniger Zufall ist, was dann in dem Stream steht. Das könnte was sinnvolles sein, oder auch etwas nicht sinnvolles. Ob etwas sinnvoll ist oder nicht, das liegt ja im Ermessen Deines Programms.
Du musst das anders angehen. Du musst Dir überlegen, in welchen Fällen die Exceptions ausgelöst werden muss. Und auf diese Fälle musst Du in den Unittests prüfen. |
AW: Einen TStringStream absichtlich zerstören
Guter Punkt.
Ich werds mal von der Seite her angehen. |
AW: Einen TStringStream absichtlich zerstören
Du kannst dir einen Nachfahren von TStream schreiben, der sich so verhält, wie du möchtest. Damit kannst du dann Fehler provozieren bzw. testen.
Das wäre dann ein ![]() ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:14 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