package test.com.coding.basic.array; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import com.coding.basic.Iterator; import com.coding.basic.array.ArrayList; public class ArrayListTest { ArrayList<Object> ls ; @Before public void setup() { ls = new ArrayList<>(); } /** * 测试一个参数的add方法 * ArrayList当数据超过10时进行第一次扩容 */ @Test public void add(){ ls.add(3); ls.add("a"); for (int i = 0; i < 10; i++) { ls.add(i); } Assert.assertEquals(ls.size(), 12); Assert.assertEquals(ls.get(1), "a"); } /** * 两个参数的add方法 */ @Test//(expected = IndexOutOfBoundsException.class) public void add4ToPramter(){ ls.add(0, 0); ls.add(1,1); ls.add(2, 2); ls.add(3,3); for (int i = 0; i < 10; i++) { ls.add(3,i); } Assert.assertEquals(ls.size(), 14); Assert.assertEquals(ls.get(3), 9); Assert.assertEquals(ls.get(13), 3); //打开下面操作抛出异常 //ls.add(15, "a"); } /** * get(i) */ @Test//(expected = IndexOutOfBoundsException.class) public void get(){ for (int i = 0; i < 10; i++) { ls.add(i); } Assert.assertEquals(ls.get(9), 9); //打开下面操作抛出异常 //ls.get(12); } @Test public void remove(){ for (int i = 0; i < 10; i++) { ls.add(i); } Assert.assertEquals(ls.remove(5),5); Assert.assertEquals(ls.size(),9); Assert.assertEquals(ls.remove(8),9); Assert.assertEquals(ls.size(),8); } @Test public void size(){ Assert.assertEquals(ls.size(),0); ls.add("a"); Assert.assertEquals(ls.size(),1); ls.add(0,0); Assert.assertEquals(ls.size(),2); ls.remove(0); Assert.assertEquals(ls.size(),1); } @Test//(expected = NoSuchElementException.class) public void iterator(){ for (int i = 0; i < 10; i++) { ls.add(i); } Iterator it = ls.iterator(); Assert.assertEquals(it.hasNext(),true); for (int i = 0; i < 10; i++) { it.next(); } Assert.assertEquals(it.hasNext(),false); //打开下面操作抛出异常 //it.next(); } }