I had the following version of a test in JUnit 3, and I tried converting it into JUnit 4, with no success. The idea is to have a base test case, that does the actual test of an interface, say Service
interface. I want to test the ServiceImpl
class, using the base test case.
public abstract class ServiceBaseTest extends TestCase { protected Service service; protected abstract Service getService(); @Override public void setUp() { service = getService(); } public void testMethod(){ //test code } ... }
ServiceImplTest
class like:
public class ServiceImplTest extends ServiceBaseTest { @Override public void setUp() { service = new ServiceImpl(); } }
I am aware that I can remove the TestCase
extension and use @BeforeClass for the setup
method. But the difference is that @BeforeClass
requires the method setup
to be static
. This is tricky for me,since I can't make getService()
static, because it would be conflicting with abstract
keyword.
Question:
Is the a clean way of implementing the alternative, using JUnit 4?