AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Unittest - Anwendungsfrage

Ein Thema von Lemmy · begonnen am 16. Mai 2014 · letzter Beitrag vom 17. Mai 2014
Antwort Antwort
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.380 Beiträge
 
Delphi 10.3 Rio
 
#1

Unittest - Anwendungsfrage

  Alt 16. Mai 2014, 15:27
Hallo,

ich habe gerade folgendes Problem:

Mehrere PDF-Formulare sollen gefüllt werden, dabei gibt es bei den Formularen einen allgemeinen Bereich der bei allen identisch ist, und einen Spezialbereich. Für die Werteerfassung gibt es einen Dialog, die Daten werden in einer Instanz einer Klassen "gespeichert" für die Weiterverarbeitung.

Nun gibt es für die Formulare ein Regelwerk wie die ausgefüllt werden müssen, z.B. muss immer ein Name angegeben werden bzw. aus 3 Möglichkeiten mind. eine max. alle ausgewählt werden.

Dieser Validator eignet sich meiner Meinung hervorragend für den Einstieg ins Unittesting - nur bin ich mir über die Umsetzung unschlüssig.

Teste ich mit dem Unittesting jetzt gezielt die einzelnen Prüfungen (z.B. "Name muss <> ''" sein, oder "WertA OR WertB OR WertC") oder teste ich an der Stelle die dahinterliegende Businesslogik? Damit meine ich: Gibt es am Ende für jedes Zielformular einen eigenen Unittest, in dem ich alle für das Formular geforderten Tests durchführe?

Aus dem Bauch raus würde ich gerne gegen die BUsinesslogik prüfen, denn dann weiß ich genau, welches Formular am Ende korrekt raus kommt. Da sich die Regeln ändern können, kann ich nach einer Anpassung genau sagen, ob die Änderung bei einem anderen Formular einen Fehler hervorruft (d.h. die Validierung nicht mehr stimmt).

Auf der anderen Seite erzeuge ich so jede Menge redundanten Testcode bzw. führe einen Test (bzw. div. Testfälle) auf eine Funktion mehrfach aus....
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

AW: Unittest - Anwendungsfrage

  Alt 16. Mai 2014, 18:20
Wenn der Validator auf einer Datenklasse arbeitet würde ich den Validator mit verschiedenen Konstellationen von Daten auf die Korrektheit seiner Ausgabe prüfen.

Wenn du alles getrennt hast, dann wird dein Formular ja bloß die Datenklasse dahinter über seine Controls befüllen und dann auf Knopfdruck oder so die Validierung antriggern.

Für einen Validator bzw die einzelnen Prüfungen eignet sich übrigens gut das Specification Pattern.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (16. Mai 2014 um 18:24 Uhr)
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.380 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Unittest - Anwendungsfrage

  Alt 16. Mai 2014, 18:43
Wenn der Validator auf einer Datenklasse arbeitet würde ich den Validator mit verschiedenen Konstellationen von Daten auf die Korrektheit seiner Ausgabe prüfen.
d.h. konkret die reine Funktionalität des Validators prüfen, nicht kontrollieren, ob die eigentliche Geschäftslogik korrekt abgebildet ist

Wenn du alles getrennt hast, dann wird dein Formular ja bloß die Datenklasse dahinter über seine Controls befüllen und dann auf Knopfdruck oder so die Validierung antriggern.
so soll es werden


Für einen Validator bzw die einzelnen Prüfungen eignet sich übrigens gut das Specification Pattern.
Danke, schau ich mir an...
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

AW: Unittest - Anwendungsfrage

  Alt 16. Mai 2014, 19:41
Wenn der Validator auf einer Datenklasse arbeitet würde ich den Validator mit verschiedenen Konstellationen von Daten auf die Korrektheit seiner Ausgabe prüfen.
d.h. konkret die reine Funktionalität des Validators prüfen, nicht kontrollieren, ob die eigentliche Geschäftslogik korrekt abgebildet ist
Nun, das kommt darauf an, welchen Umfang der Validator hat. Prüft er nur ob z.B. Pflichtfelder ausgefüllt sind oder es sich um eine gültige email Addresse handelt oder auch eine Plausibilitätsprüfung der gesamten Eingabe. Letzteres dürfte schon in Richtung Geschäftslogik gehen. Da kommt es aber drauf an, wie die Implementiert ist. Denn es gibt durchaus Systeme, wo das nicht hardcodiert sondern einstellbar ist. Wobei letztes sich schon eher Richtung Integrationstest (mehrere Programmteile in Interaktion miteinander) anstatt Unittest (eine Einheit in Isolation) gehen würde.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#5

AW: Unittest - Anwendungsfrage

  Alt 17. Mai 2014, 18:27
Denn es gibt durchaus Systeme, wo das nicht hardcodiert sondern einstellbar ist. Wobei letztes sich schon eher Richtung Integrationstest
Nicht, wenn man in diesem Fall einfach gegen die Spezifikation der konfigurierbaren Prüfung testet. Denn es ist ja unerheblich, welche Einstellung vorgenommen wird.
  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 10:20 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