Как выполнить модульное тестирование c функциями, связанными с IO?

Я сталкиваюсь с проблемами при написании модульных тестов для функций C, которые включают операции ввода-вывода. Например, ниже приведен код, который я написал для получения входной строки от пользователя из консоли. Я не знаю, как автоматизировать тестирование пользовательского ввода с помощью функции getchar ().

char * GetStringFromConsole()
{

    char *strToReturn = NULL;
    int len = 128;

    strToReturn = (char*)malloc(len);
    if (strToReturn) 
    {
        int ch;
        char *ptr  = strToReturn;
        int counter = 0;
        for (; ;) 
        {
            ch = getchar();
            counter++;

            if (counter == len)
            {
                strToReturn = realloc(strToReturn, len*=2 );
                ptr = strToReturn + counter-1;
            }

            if ((ch != EOF) && (ch != '\n') && (counter < len))
            {
                *ptr++ = ch;
            }
            else 
            {
                break;
            }

        }
        *ptr = '\0';
    }
    return strToReturn;
}   

Ответы на вопрос(1)

Ваш ответ на вопрос