Я рекомендую вам отделить проверку разветвления от проверки работы, проделанной в разветвленном процессе (ах). Например, допустим, что ваша программа рекурсивно обрабатывает каталог, порождая дочерний процесс для каждого подкаталога, а затем обрабатывает файлы в своем собственном каталоге.
Вместо полной обработки большого дерева каталогов и анализа результирующего вывода, созданного только для тестов, есть тесты для обработки файла, тесты для порождения дочернего элемента с каталогом, тест для каталогов. обнаружено и т. д.
Ваши тесты станут проще, когда вы уменьшите размер системы, которую каждый должен тестировать, до небольших единиц работы. Когда вы начнете тестировать, что потомки порождены, вы можете смоделировать системный вызов, если поместите его в свой собственный метод.
Это очень много охватывает на очень высоком уровне. Спросите, если вам нужна более подробная информация.