Jak połączyć funkcje testowe c z udziałem IO?

Mam problemy z pisaniem testów jednostkowych do funkcji C, które wymagają operacji IO. Na przykład poniżej znajduje się kod, który napisałem, aby uzyskać ciąg wejściowy od użytkownika z konsoli. Nie wiem, jak zautomatyzować testowanie danych wejściowych użytkownika za pomocą funkcji 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;
}   

questionAnswers(1)

yourAnswerToTheQuestion