I have an interface List whose implementations include Singly Linked List, Doubly, Circular etc. The unit tests I wrote for Singly should do good for most of Do
With JUnit 4.0+ you can use parameterized tests:
@RunWith(value = Parameterized.class) annotation to your test fixturepublic static method returning Collection, annotate it with @Parameters, and put SinglyLinkedList.class, DoublyLinkedList.class, CircularList.class, etc. into that collectionClass: public MyListTest(Class cl), and store the Class in an instance variable listClasssetUp method or @Before, use List testList = (List)listClass.newInstance();With the above setup in place, the parameterized runner will make a new instance of your test fixture MyListTest for each subclass that you provide in the @Parameters method, letting you exercise the same test logic for every subclass that you need to test.