In einer meiner Anwendungen habe ich eine Klasse, die für Benutzereingaben zuständig ist. Die Standardmethode für die Eingabe ist die Konsole (Tastatur), und ich möchte einige Komponententests schreiben, um sicherzustellen, dass sie korrekt sind.Wie teste ich eine Konsolen-Eingabeklasse?
Ich erwäge, das google-test Framework für meine Unit-Tests zu verwenden, was es einfach macht, alle Tests zu automatisieren. Ich bin mir jedoch nicht sicher, wie ich das Testen der Konsoleneingabe automatisieren kann.
Gibt es eine Möglichkeit, Benutzereingaben auf der Tastatur zu simulieren? Oder muss ich meine Testeingabe manuell eingeben? Oder vielleicht umleiten Sie stdin
(entweder in Code oder durch eine Rohrleitung, wenn Sie den Komponententest ausführen)?
EDIT: Ich plane mit GNU Readline für Benutzereingaben. Im Moment kann ich keine Möglichkeit sehen, den Eingangsstrom dieser Bibliothek umzuleiten - vielleicht hat jemand anderes damit Erfahrung?
Was mit spöttischer stdin mit einem dateiähnliche Mockobjekt falsch? –
Ich bin neu im Komponententest, also habe ich keine Mock-Objekte zuvor gesehen. Schau es dir jetzt an. –