Wie Unit-Test c-Funktionen mit IO?

Ich habe Probleme beim Schreiben von Komponententests für C-Funktionen, die einen E / A-Betrieb beinhalten. Im Folgenden finden Sie beispielsweise den Code, den ich geschrieben habe, um eine Eingabezeichenfolge vom Benutzer von der Konsole abzurufen. Ich weiß nicht, wie ich das Testen von Benutzereingaben mit der Funktion getchar () automatisieren soll.

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;
}   

Antworten auf die Frage(1)

Ihre Antwort auf die Frage