AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Einen TStringStream absichtlich zerstören
Thema durchsuchen
Ansicht
Themen-Optionen

Einen TStringStream absichtlich zerstören

Ein Thema von S.Langhammer · begonnen am 15. Apr 2014 · letzter Beitrag vom 16. Apr 2014
Antwort Antwort
S.Langhammer

Registriert seit: 28. Mai 2013
23 Beiträge
 
Delphi XE3 Enterprise
 
#1

Einen TStringStream absichtlich zerstören

  Alt 15. Apr 2014, 15:29
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?
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#2

AW: Einen TStringStream absichtlich zerstören

  Alt 15. Apr 2014, 15:42
Delphi-Quellcode:
Procedure SomeProcedureOrMethod;
var
  s : String;
  st : TStringStream;

begin
  setLength(s,1024);
  st := TStringStream.Create(s);
Ich schätze, nun steht nichts sinnvolles drin. Du kannst aber in den string auch etwas nicht Sinnvolles reinschreiben.


Nebenbei: Unittests mit Stringstreams, 'in dem wirklich nichts sinnvoll Interpretierbares steht' ist kein Unittest, sondern Unittestroulette. Lass es und schreib etwas deterministisch sinnloses rein.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Einen TStringStream absichtlich zerstören

  Alt 15. Apr 2014, 15:52
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
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
S.Langhammer

Registriert seit: 28. Mai 2013
23 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Einen TStringStream absichtlich zerstören

  Alt 16. Apr 2014, 07:09
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.
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

AW: Einen TStringStream absichtlich zerstören

  Alt 16. Apr 2014, 07:12
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.
Jens
  Mit Zitat antworten Zitat
S.Langhammer

Registriert seit: 28. Mai 2013
23 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: Einen TStringStream absichtlich zerstören

  Alt 16. Apr 2014, 07:30
Guter Punkt.
Ich werds mal von der Seite her angehen.
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#7

AW: Einen TStringStream absichtlich zerstören

  Alt 16. Apr 2014, 19:23
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 Mock-Objekt. Guck dir auch den englischen Eintrag an, der ist ausführlicher.
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz