Junit-geschützte Methode

8

Ich wundere mich über einen netten Weg, mit einer geschützten Methode in Junit umzugehen.

Angenommen, ich möchte eine Klasse namens A mit einem geschützten Member und Konstruktor testen. Ich habe verstanden, dass ich, um die Klasse A zu testen, eine andere Klasse namens ATest schreiben sollte, die TestCase erweitern könnte (dies sollte in Junit3 obligatorisch sein). Da ich eine geschützte Methode testen möchte und weil A einen geschützten Konstruktor hat, sollte meine Testklasse ATest auch die Klasse A erweitern, in der diese Methode implementiert ist, um diese Klasse erstellen und auf die Methode zugreifen zu können.

könnte eine doppelte Vererbung aus beiden Klassen eine nette Lösung sein?

P.S Ich weiß bereits, dass in Junit 4 die Vererbung aus dem Testfall vermieden werden könnte.

    
Giuseppe Pes 11.10.2012, 23:58
quelle

2 Antworten

17

Um Zugriff auf die geschützten Mitglieder von A zu erhalten, können Sie einfach A und ATest in dasselbe Paket einfügen.

    
matt b 12.10.2012, 00:12
quelle
1

Java lässt keine Mehrfachvererbung der Implementierung zu. Sie können mehrere Schnittstellen implementieren.

Ich würde es vorziehen, die Reflexion zu verwenden, um Methoden zum Testen zu erhalten, von denen die Kunden nicht wissen sollen. Funktioniert auch für private Methoden.

    
duffymo 12.10.2012 00:00
quelle

Tags und Links