Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Junit protected method

I'm wondering about a nice way to deal with a protected method in Junit.

Assuming I want to test a class called A which has a protected member and constructor. I understood that in order to test the class A I should write another class called ATest which might extend TestCase ( this should be mandatory in Junit3 ). Because I want to test a protected method and because A has a protected constructor, my test class ATest should also extend the class A where that method is implemented in order to be able to create that class and to access to the method.

could be a double inheritance from both classes a nice solution?

P.S I've already Known that in Junit 4 the inheritance from the TestCase might be avoided.

like image 888
Giuseppe Pes Avatar asked Oct 11 '12 23:10

Giuseppe Pes


2 Answers

To gain access to A's protected members, you can just put A and ATest in the same package.

like image 57
matt b Avatar answered Oct 05 '22 18:10

matt b


Java doesn't allow multiple inheritance of implementation. You can implement multiple interfaces.

I would prefer using reflection to get at methods for testing that I don't want clients to know about. Works for private methods, too.

like image 31
duffymo Avatar answered Oct 05 '22 20:10

duffymo