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