Легче тестировать вещи, если вы разделяете такие вещи, как ввод-вывод и потребление ресурсов. Под этим я подразумеваю, что где-то есть вещи ввода / вывода (возможно, у вас в главном), а затем создайте метод, который принимает входные данные в качестве параметра (возможно, String).
Затем просто вызовите метод потребления из ваших тестов JUnit со значениями параметров, которые определяют путь в операторе switch. Например:
[in the class under test]
void methodName()
{
String theInput;
... perform I/O and populate "theInput"
consume(theInput);
}
void consume(final String input)
{
switch (someting based on input)
{
...
}
}
[in your junit]
@Test
testConditionOne()
{
consume("force condition one");
}
@Test
testConditionTwo()
{
consume("force condition two");
}
... etc.