9

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.

Giuseppe Pes
  • 7,436
  • 3
  • 46
  • 86

2 Answers2

17

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

matt b
  • 135,500
  • 64
  • 278
  • 339
1

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.

duffymo
  • 299,921
  • 44
  • 364
  • 552