2016-09-11 83 views
-3

SubList(Java.util.List)本地实现的Im测试方法。我使用Java 8 api文档。对于toArray()方法,我只有3个测试。你能帮助我想出更多的测试用例吗?由于SubList测试用例

@Test 
public void toArrayBasicSub() { 
    fillList(); 
    List<String> expectedList = Arrays.asList("1","2","3","4","5"); 
    String[] expected = {"1","2","3","4","5"}; 
    List<String> sub = list.subList(0, 5); 
    Object[] actual = sub.toArray(); 
    assertEquals(expectedList,list); 
    assertArrayEquals(expected,actual); 
} 

@Test 
public void toArrayEmpty() { 
    String[] expected = {}; 
    List<String> sub = list.subList(0, 0); 
    Object[] actual = sub.toArray(); 
    assertArrayEquals(expected,actual); 
} 

@Test 
public void toArrayNull() { 
    fillList(); 
    List<String> expected = null; 
    List<String> sub = list.subList(0, 5); 
    sub = null; 

    boolean thrownException = false; 
    try { 
     sub.toArray(); 
    } catch (NullPointerException e) { 
     thrownException = true; 
    } 
    assertTrue(thrownException); 
} 
+0

为什么要测试JDK的方法?这已经由开发它的团队测试过了。你应该测试你自己的代码。 – Beggs

+0

并且不要使用try-catch来测试异常。可以使用'@Test(expected = NullPointerException.class)'或ExpectedException测试规则。 –

回答

0

我假设你只有学习的目的定位List.subList()(因为没有其他充分的理由来测试JDK方法!)。

所以,你基本上是在寻找反馈...所以让我们来帮助解答。

第一件事:成为明确关于您正在测试的范围。你说你想测试subList()。如果是这样,那么你的测试应该只有是关于子列表。

,然后合理的测试数量是非常短的:

  1. 测试结果为列表
  2. 测试结果对于非空列表上调用子列表上调用子列表(简单的情况:具有一个元件到子列表显示)
  3. 试验一个非空列表(复杂的情况下对呼叫子列表中的结果是:与几个元素,以在子列表中显示)

你不需要其他的东西。具体来说:当你的工作是测试subList()的调用;那么你不需要到Array的任何测试用例。

subList()在List上调用,并返回一个List。这是唯一重要的事情。之后,通过调用subList()创建的列表...不在subList()的测试范围内!