Написание тестового примера для оператора switch внутри приватного метода

У меня есть заявление переключателя внутри частного метода. Я не думаю, что нам нужно проводить модульное тестирование для частного метода. Но мой инструмент покрытия кода (EclEmma) показывает "пропущена 1 из 4 веток". с желтым ромбом на выключателе. Итак, мой вопрос: как я могу написать тест для этой конкретной ситуации?

Фрагмент кода

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

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

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

Другие вопросы по тегам