AGB  ·  Datenschutz  ·  Impressum  







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

Unittests generieren ?

Ein Thema von Ghostwalker · begonnen am 8. Okt 2018 · letzter Beitrag vom 10. Okt 2018
Antwort Antwort
Seite 2 von 2     12   
TigerLilly
Online

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.206 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Unittests generieren ?

  Alt 9. Okt 2018, 07:59
Schreib dir einen Testgenerator, der den Code für die Tests erzeugt. Du hast jetzt ja eh schon jede Menge Boilerplate-Code. Bzw lass deine Klassen gleich den Code für die Tests erzeugen.

Oder: Deine Klassen sollen ihren Typ + ihre Operatoren in einer Liste registrieren. Aus dieser Liste erzeugst du dann (halbautomatisch) die Testfälle.

Off-topic: Wenn es so aufwändig ist, Testfälle zu schreiben, hapert´s am Design.
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#12

AW: Unittests generieren ?

  Alt 9. Okt 2018, 08:04
@Ghostwalker

Du könntest dir Anregungen zum gesamten Thema (Einheiten, Generierung von UnitTests,...) bei diesem Projekt holen

https://github.com/angularsen/UnitsNet

Ja, ist nicht Delphi aber es geht ja um das Prinzip
  Mit Zitat antworten Zitat
Wosi

Registriert seit: 29. Aug 2007
59 Beiträge
 
#13

AW: Unittests generieren ?

  Alt 9. Okt 2018, 08:24
Off-topic: Wenn es so aufwändig ist, Testfälle zu schreiben, hapert´s am Design.
Das ist alles andere als off-topic. Das ist der Kern des Problems.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: Unittests generieren ?

  Alt 9. Okt 2018, 16:47
Hallo,
korrekt, das ist der Kern.

Aber:
Eine Methode (absichtlich ausführlich)

Delphi-Quellcode:
function Test(a,b: Integer): Boolean;
begin
  if a>b then
  begin
    Result:= True; // Strang1
  end
  else
  begin
    Result:= False; // Strang2
  end;
end;
erzeugt ja 2 Code-Stränge.
Um beide zu testen (Testabdeckung 100%), musst brauchst du 2 Testfälle
a=1
b=0
-> Ergebnis True

a=1
b=2
-> Ergebnis False


Wer soll Dir das Schreiben dieser Testfälle abnehmen?
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie
Online

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

AW: Unittests generieren ?

  Alt 9. Okt 2018, 17:47
Wer soll Dir das Schreiben dieser Testfälle abnehmen?
Statische Code Analyse kann sowas erkennen und es gibt in anderen Sprachen Lösungen dafür, dann entsprechende Werte zum Testen zu finden.
Natürlich ist sowas für uns Delphi Entwickler schwarze Magie

Nur mal so: https://docs.microsoft.com/en-us/vis...t?view=vs-2017
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie ( 9. Okt 2018 um 17:51 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#16

AW: Unittests generieren ?

  Alt 9. Okt 2018, 19:49
Hallo,
Zitat:
Statische Code Analyse kann sowas erkennen
Das sollte der Pascal Analyzer auch können.
Aber trotzdem muss ich doch sinnvoll Tests schreiben.

test driven ebend.
Heiko
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#17

AW: Unittests generieren ?

  Alt 10. Okt 2018, 05:48
Danke erstmal für die Hinweise und Links.

@hoika

Die Konvertierung ist hier nur ein kleiner Teil des ganzen.

Neben den versiedenen Operationen, wollte ich auch damit erreichen, das z.B. bei

Procedure AddItem (Gewuerz:String;menge:Gramm); auch wirklich Gramm und nicht Kilogramm oder t übergeben werden können.

Für alternative Vorschläge bin ich immer offen
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 16: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