Wie können private Methoden mit Unittest getestet werden?

Alles rund um die Programmierung mit Qt
Antworten
harry_haller
Beiträge: 2
Registriert: 16. Juni 2011 10:24

Wie können private Methoden mit Unittest getestet werden?

Beitrag 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
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag 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 ...
harry_haller
Beiträge: 2
Registriert: 16. Juni 2011 10:24

Beitrag 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
grog
Beiträge: 63
Registriert: 14. November 2009 21:33

Beitrag von grog »

Quick & really dirty: #define private public, #include <your.h>
khrl01
Beiträge: 28
Registriert: 28. August 2007 13:06

Beitrag 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
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Da private Funktionen nur Hilfefunktionen für die public - Funktionen sind sehe ich keine Probleme wenn man diese nicht testen kann.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
khrl01
Beiträge: 28
Registriert: 28. August 2007 13:06

Beitrag 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.
Antworten