Wie teste ich einen privaten Konstruktor? ;-)

Status
Nicht offen für weitere Antworten.

Novanic

Bekanntes Mitglied
Hi Leute,

ich nutze JetBrains IntelliJ IDEA 6.0 als IDE. IntelliJ 6 kommt jetzt mit Untersütztung für EMMA (ein OpenSource-Code-Coverage-Tool), dass ihr hier findet könnt: emma.sourceforge.net/

Merkwürdiger weise zeigt mir IntelliJ jetzt an, dass ich meinen Konstruktor testen soll, obwohl er private ist (Konstruktor einer Util-Klasse, die mit "public final class" deklariert ist).

Ein private-Konstrukor lässt sich doch nicht testen oder? :)
Hatte jemand schonmal diesen Fehler oder kann mir jemand sagen ob es eher an IntelliJ oder an EMMA liegen muss?

Danke schonmal! :)

Gruß Nova
 

Novanic

Bekanntes Mitglied
Ja, stimmt, wenn der Konstruktor innerhalb der Klasse verwendet wird, wird er automatisch getestet, wenn ich die entsprechende Methode teste.
Aber da der private Konstruktor nirgends aufgerufen wird, kann ich ihn auch nicht testen... :)

Ich denke mal es liegt dann an EMMA. Wenn ich keinen Konstruktor implementiere, wird der Klassen-Kopf als ungetestet markiert, weil ich den Default-Konstruktor nicht getestet habe und wenn ich einen privaten Konstruktor implementiere, wird dieser als ungetestet gewertet.
Andere Möglichkeiten gibt es aber nicht oder?

Dann werde ich das wohl mal an EMMA melden müssen...
Also ein privater Konstruktor, der in der Klasse nicht verwendet wird und auch keinen Inhalt hat, sollte von der Testauswertung ausgeschlossen werden oder nicht?

Danke für eure Hilfe! :)

Gruß Nova
 

Novanic

Bekanntes Mitglied
Äh, ne? Wenn ich verhindern möchte, dass eine Instanz von der Klasse erzeugt wird? Es handelt sich ja um eine reine Util-Klasse (also alles final und static).

Und wenn ich den Konstruktor weglasse, sagt mir EMMA wiederrum, dass ich den Default-Konstruktor testen soll...
 

SnooP

Top Contributor
Jo... solche Konstruktoren sollten grundsätzlich nicht im Abdeckungsfall auftauchen - toll wäre, wenn man für dieses EMMA Annotations nutzen könnte, sowas wie @DontTestMe oder so... damit man von vornherein explizit bestimmte Abdeckungsfälle ausschließen kann.
 
S

SlaterB

Gast
wenn die Klasse eh nix schlimmes anstellen kann, dann erlaube doch einfach den Default-Konstruktor,
niemand kann new Object() verhindern, wer dann new Util() macht ist ebenso selber schuld ;)

und diesen Defalut-Konstruktor wirst du doch nun wohl testen können um die gute EMMA zufrieden zustellen
(ist das eine Frauenzeitschrift? ;) )
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben