Die stark vereinfachte Skizze einer Beispiel-Anwendung:
Berechne die Summe von zwei Zahlen.
Das gerundete Ergebnis wird ausgegeben.
Wie das Ergebnis gerundet wird, legt eine globale Einstellung fest.
Die Globalen Einstellungen werden vom Anwendungsfall nicht verändert.
Delphi-Quellcode:
TAnwendungsfallSummeConfig = class()
puplic
property Rundungstyp: Integer;
end;
TAnwendungsfallSumme = class()
constructor Create(AConfig: TAnwendungsfallSummeConfig);
destructor Destroy; override;
{...}
protected
property Config: TAnwendungsfallSummeConfig;
puplic
property Wert1: Float;
property Wert2: Float;
property Ergebnis: Float;
end;
implementation
constructor TAnwendungsfallSumme.Create(AConfig: TAnwendungsfallSummeConfig);
begin
inherited;
FConfig := AConfig;
end;
destructor TAnwendungsfallSumme.Destroy;
begin
FConfig.Free;
inherited;
end;
TAnwendungsfallSummeConfig könnte im einfachsten Fall auch ein Record oder verschachtelter Record sein.
Wichtig ist aber die Trennung "Global" vom konkreten Anwendungsfall.
Anwendungsfall im Programm erzeugen
Delphi-Quellcode:
var
config: TAnwendungsfallSummeConfig;
begin
config := TAnwendungsfallSummeConfig.Create;
config.Rundungstyp := Global.Settings['Allgemein.Rundungstyp'];
AnwendungsfallSumme := TAnwendungsfallSumme.Create(config);
// wie man den Anwendungsfall mit dem Formular verknüpft, ist schon das nächste Thema ... MVC usw.
end;
Im Testprojekt gibt es die
Unit 'Global' nicht. Auch das Formular wird dort nicht gebraucht.
Dort soll unter anderem die Berechnung für jeden Rundungstyp getestet werden.
Wie man eine Testanwendung und Testfälle erzeugt ist bekannt?