Написание тестового примера для оператора 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/