Wie testet man die c-Funktionen von IO?

8

Ich stehe vor Problemen 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.

%Vor%     
ramkumarhn 25.12.2012, 08:24
quelle

1 Antwort

4

Mock getchar :

  1. Verwendung des Präprozessors , z. in Ihrer Testdatei.

    %Vor%
  2. Ersatzsymbol für den Linker (härter, meiner Meinung nach), z.B. Definieren Sie Ihre eigene getchar irgendwo in Ihren Quelldateien .c, anstatt eine Verbindung zu einer stdlib herzustellen (z. B. msvcrt unter Windows)

  3. Funktion im Test ändern , um eine Funktion zu akzeptieren, die char , beste Wahl (IMHO) zurückgibt - keine Konflikte mit stdlib . Und richten Sie einen Test ein, indem Sie ein Ding wie mock_getchar vom Punkt 1 im Testcode übergeben.

    %Vor%

Für die Punkte 1 und 2 würde ich vorschlagen, anstelle von getchar (zB mygetchar ) eine eigene Funktion zu verwenden - auf diese Weise könnten Sie nachahmen / ersetzen es ohne Konflikte mit Std beinhaltet / libs.

    
kerim 28.12.2012 06:53
quelle

Tags und Links