Mega Code Archive

 
Categories / Java / Development Class
 

Simple use of JUnit to test ArrayList

// : c15:JUnitDemo.java //Simple use of JUnit to test ArrayList //{Depends: junit.jar} //From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002 //www.BruceEckel.com. See copyright notice in CopyRight.txt. import java.util.*; import junit.framework.*; //So we can see the list objects being created, //and keep track of when they are cleaned up: class CountedList extends ArrayList {   private static int counter = 0;   private int id = counter++;   public CountedList() {     System.out.println("CountedList #" + id);   }   public int getId() {     return id;   } } public class JUnitDemo extends TestCase {   private CountedList list = new CountedList();   // You can use the constructor instead of setUp():   public JUnitDemo(String name) {     super(name);     for (int i = 0; i < 3; i++)       list.add("" + i);   }   // Thus, setUp() is optional, but is run right   // before the test:   protected void setUp() {     System.out.println("Set up for " + list.getId());   }   // tearDown() is also optional, and is called after   // each test. setUp() and tearDown() can be either   // protected or public:   public void tearDown() {     System.out.println("Tearing down " + list.getId());   }   // All tests have method names beginning with "test":   public void testInsert() {     System.out.println("Running testInsert()");     assertEquals(list.size(), 3);     list.add(1, "Insert");     assertEquals(list.size(), 4);     assertEquals(list.get(1), "Insert");   }   public void testReplace() {     System.out.println("Running testReplace()");     assertEquals(list.size(), 3);     list.set(1, "Replace");     assertEquals(list.size(), 3);     assertEquals(list.get(1), "Replace");   }   // A "helper" method to reduce code duplication. As long   // as the name doesn't start with "test," it will not   // be automatically executed by JUnit.   private void compare(ArrayList lst, String[] strs) {     Object[] array = lst.toArray();     assertTrue("Arrays not the same length", array.length == strs.length);     for (int i = 0; i < array.length; i++)       assertEquals(strs[i], (String) array[i]);   }   public void testOrder() {     System.out.println("Running testOrder()");     compare(list, new String[] { "0", "1", "2" });   }   public void testRemove() {     System.out.println("Running testRemove()");     assertEquals(list.size(), 3);     list.remove(1);     assertEquals(list.size(), 2);     compare(list, new String[] { "0", "2" });   }   public void testAddAll() {     System.out.println("Running testAddAll()");     list.addAll(Arrays.asList(new Object[] { "An", "African", "Swallow" }));     assertEquals(list.size(), 6);     compare(list,         new String[] { "0", "1", "2", "An", "African", "Swallow" });   }   public static void main(String[] args) {     // Invoke JUnit on the class:     junit.textui.TestRunner.run(JUnitDemo.class);   } } ///:~