AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Wie Ausgaben auf UI testen?

Ein Thema von ULIK · begonnen am 25. Jun 2015 · letzter Beitrag vom 26. Jun 2015
Antwort Antwort
Benutzerbild von ULIK
ULIK

Registriert seit: 25. Sep 2006
Ort: Regensburg
416 Beiträge
 
Delphi 11 Alexandria
 
#1

Wie Ausgaben auf UI testen?

  Alt 25. Jun 2015, 15:32
Wie würdet ihr denn Folgendes testen?:

die zu testende Klasse zeichnet einen mehrzeiligen Text mit einem gegebenen Font auf einen beliebigen Canvas. Dabei wird die Stelle des Zeilenumbruchs durch eine gegebene maximale Breite definiert. Zudem ist es möglich, die Ausgabe mit einer Skalierung zu versehen, sprich ein Scale von 0.5 gibt den Text in einem Rechteck der halben max. Breite aus und in einem Font mit halber Schriftgröße.
Nach außen hat die Klasse nur eine einzige Methode: PaintToCanvas, der das Handle des Canvas, der Text, der Font, die Skalierung und die max. Breite mitgegeben wird.

Zu testen ist nun, daß bei gegebenen Font und variabler Skalierung, der Zeilenumbruch immer an der gleichen Stelle auftritt. Wie man das intern technisch löst ist, ist jetzt erst mal egal, mir geht's nur darum, wie/ob man so was mit Unittests testen kann.

Hintergrund: das ganz ist Teil eines Textrenderings das erweitert werden soll und da diese Sache mit der Skalierung sehr wichtig ist, wären mir Unittests dafür sehr recht.

vielen Dank!
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

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

AW: Wie Ausgaben auf UI testen?

  Alt 25. Jun 2015, 15:43
Da du auf ein Canvas malst, kannst du da direkt ein Bitmap-Canvas oder sogar ein gemocktes Canvas reinstecken.
Im ersten Fall müsstest du das Bitmap prüfen (vermutlich umständlich). Für den zweiten Fall kann man mit ein bisschen Wissen über den Algorithmus (z.b. "der Algorithmus ruft für jede Zeile TextOut auf") vermutlich auch etwas erreichen.

Vermutlich fährt man mit einem gemischten Ansatz nicht schlecht: Erst gucken ob alle Zeilen durch einen Zeilenumbruch oder einen Ausgabeaufruf getrennt sind. Ob z.B. die Breitenbeschränkung eingehalten wurde kann man dann relativ gut auf dem Ausgabe-Bitmap testen.

Geändert von BUG (25. Jun 2015 um 15:55 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von ULIK
ULIK

Registriert seit: 25. Sep 2006
Ort: Regensburg
416 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Wie Ausgaben auf UI testen?

  Alt 26. Jun 2015, 08:23
Danke für die Einschätzung! Dann wird's wohl auf ein paar Bildvergleiche rauslaufen. Warum: die PaintTo Methode gibt den Text intern nicht in einem Block wie TextOut aus, sondern zeichenweise. Dafür werden dann GDI+ Funktionen benutzt, die auf dem Handle des Canvas arbeiten. Kann man so was dann überhaupt mit einem Canvas-Mock abfangen? Ok, ich könnte jetzt die GDI+ Funktionen mocken; müßt ich direkt mal ausprobieren!
Einen Zeilenumbruch als Zeichen gibt es in diesem Sinne nicht, der Text wird dann nur an einer anderen Stelle auf dem Canvas ausgegeben.

Nochmal Danke, immerhin hat mir das Überlegen der Antwort wieder einige Ideen gebracht!
  Mit Zitat antworten Zitat
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 11:34 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