Ich habe Probleme beim Schreiben von Komponententests auf C-Funktionen, die den IO-Betrieb betreffen. Zum Beispiel ist unten der Code, den ich geschrieben habe, um eine Eingabezeichenfolge vom Benutzer von der Konsole zu erhalten. Ich weiß nicht, wie man Benutzereingaben mit getchar() automatisiert testet.Wie testet man die c-Funktionen mit IO?
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;
}
Sie könnten ein Shell-Skript erstellen, um Ihr Programm auszuführen und seine Ausgabe mit einem erwarteten Inhalt zu vergleichen. –