Seite 1 von 1
Wie können private Methoden mit Unittest getestet werden?
Verfasst: 16. Juni 2011 12:54
von harry_haller
Hallo,
ich versuche gerade mit der qtestlib Unittests umzusetzen. Die Beispiele und Tutorials von Nokia sind gut, beinhalten aber leider keine Informationen wie private Methoden einer Klasse getestet werden können.
Irgendwie muss es doch einen weg geben, die Methoden (über die Introspection?) zu testen. Hat das schonmal jemand gemacht?
Soweit ich weiß funktioniert das beispielsweise in JUnit über die Introspection.
Grüße aus Freiburg
Harry Haller
Verfasst: 16. Juni 2011 13:31
von RHBaum
Erklaer mal, warum Du private Methoden expliziet testen willst / musst ?
Normal intressiert dich von aussen nur das zugängliche Interface der Klasse. Private Methoden sind nur da, um die offiziellen Methoden zu implementieren, oder nich ?
Du musst die Klasse als gesamtheit sehen beim Unittest ...
Ciao ...
Verfasst: 16. Juni 2011 13:46
von harry_haller
Hi,
für einen ordentliche Abdeckungstest halte ich es für sehr sinnvoll auch die privaten Methoden zu testen. Sonst sind Unittests ja eher sinnlos. Gerade in den privaten Methoden wird ja ein großteil der Logik vergraben.
Aber das war ja auch eigentlich nicht die Frage ^^ .
Grüße
Harry Haller
Verfasst: 25. Juni 2011 12:12
von grog
Quick & really dirty: #define private public, #include <your.h>
Verfasst: 25. Juni 2011 21:10
von khrl01
harry_haller hat geschrieben:
für einen ordentliche Abdeckungstest halte ich es für sehr sinnvoll auch die privaten Methoden zu testen. Sonst sind Unittests ja eher sinnlos. Gerade in den privaten Methoden wird ja ein großteil der Logik vergraben.
Du kannst zumindest
protected Methoden testen, indem Du die Testklasse von der zu testenden Klasse ableitest.
grüsse
karl-heinz
Verfasst: 25. Juni 2011 22:15
von Christian81
Da private Funktionen nur Hilfefunktionen für die public - Funktionen sind sehe ich keine Probleme wenn man diese nicht testen kann.
Verfasst: 25. Juni 2011 22:33
von khrl01
Christian81 hat geschrieben:Da private Funktionen nur Hilfefunktionen für die public - Funktionen sind sehe ich keine Probleme wenn man diese nicht testen kann.
Da Klassen Zustandsautomaten enthalten können, kann es machmal einfacher sein, auch mittels privater Methoden testen zu können.