I currently have the following classes:
public abstract class superClass {
abstract void abstractTest();
}
public class classForTesting extends superClass {
@Override
void abstractTest() {
...
}
}
I am currently writing a unit test (using JUnit + JMockit) for classForTesting, but I'm not sure how to test abstractTest(). I tried mocking the superclass, but I still can't call abstractTest().
Any ideas will be greatly appreciated.
Thank you!
If you don't want abstractTest to be public, then test the method that calls abstractTest. I also changed the class names to start with a capital letter.
public abstract class SuperClass {
abstract void abstractTest();
}
public class ClassForTesting extends SuperClass {
@Override
void abstractTest() {
...
}
public void publicMethod() {
abstractTest()
}
}
And now test publicMethod:
public class PublicTest {
private ClassForTesting classForTesting;
@Before
public void setUp(){
classForTesting = ClassForTesting();
}
@Test
public void testMethod() {
classForTesting.publicMethod();
...
}
}