0

プライベート メソッド内に switch case ステートメントがあります。プライベート メソッドの単体テストを行う必要はないと思います。しかし、私のコード カバレッジ ツール (EclEmma) は、「4 つのブランチのうちの 1 つが見つかりませんでした」と表示しています。switch ステートメントに黄色のひし形を付けます。私の質問は次のとおりです。この特定の状況でテストを作成するにはどうすればよいですか?

コードスニペット

public void parentMethod() {
  ....
  childMethod(someList);
  ....
} 

private void childMethod(List<Integer> someList) {
  for(Integer var : someList) {
    switch(var){ ..... }
  }
}
4

1 に答える 1

1

したがって、次のようなリフレクションを使用できます。

MyClass myClass = new MyClass();  
List<Integer> input = Arrays.asList(1, 2, 3);

Method method = MyClass.class.getDeclaredMethod("childMethod", List.class);
method.setAccessible(true);
method.invoke(myClass, input);
....

プライベートメソッドをテストするためのアプローチ、または一般的にテストしないためのアプローチに関する良いリンク:

http://saturnboy.com/2010/11/testing-private-methods-in-java/

http://www.artima.com/suiterunner/privateP.html

于 2014-09-26T18:33:32.627 に答える