В одном из моих приложений у меня есть класс, который отвечает за пользовательский ввод. Методом ввода по умолчанию является консоль (клавиатура), и я хочу написать для нее несколько модульных тестов, чтобы убедиться, что это правильно.
Я рассматриваю возможность использования структуры google-test для модульного тестирования, которая упрощает автоматизировать все испытания. Однако я не уверен, как я могу автоматизировать тестирование ввода консоли.
Есть ли способ имитировать пользовательский ввод на клавиатуре? Или мне нужно вручную ввести свой тестовый ввод? Или, возможно, перенаправить stdin (либо в коде, либо с помощью конвейера при запуске модульного теста)?
РЕДАКТИРОВАТЬ: я планирую использовать GNU readline для пользовательского ввода. На данный момент я не вижу способа перенаправить входной поток этой библиотеки - возможно, у кого-то есть опыт в этом?