2016-09-11 2 views
-3

SubList(Java.util.List)ネイティブ実装のテストメソッドです。私は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. テスト非空のリスト上のsubListを呼び出すためのリスト
  2. テストで結果をサブリスト呼び出すための結果(単純な場合:一つの要素とサブリスト表示する)
  3. テスト非空リスト(複雑な場合にサブリスト呼び出す結果:サブリスト表示するには、いくつかの要素を持つ)

あなたはそれほど多くを必要としません。具体的には:あなたの仕事は、subList()呼び出しをテストするときです。 toArrayのテストケースは必要ありません。

subList()はListに対して呼び出され、Listを返します。それがここで重要なのは唯一のことです。その後、subList()の呼び出しによって作成されたリストには、subList()のテストの対象外です。