Schreiben von Daten in System.in

9

In unserer Anwendung erwarten wir Benutzereingaben innerhalb von Thread wie folgt:

%Vor%

Ich möchte diesen Teil in meinem Komponententest bestehen, damit ich den Thread fortsetzen kann, um den Rest des Codes auszuführen. Wie kann ich etwas in System.in von junit schreiben?

    
Mesut 28.09.2010, 14:55
quelle

3 Antworten

21

Was Sie tun möchten, ist die Methode setIn() von System . Dadurch können Sie Daten in System.in von junit übergeben.

    
jjnguy 28.09.2010, 14:58
quelle
9

Ersetzen Sie es für die Dauer Ihres Tests:

%Vor%     
Aaron Digulla 28.09.2010 14:59
quelle
5

Anstelle der obigen Vorschläge ( edit : Ich habe bemerkt, dass Bart diese Idee auch in einem Kommentar hinterlassen hat), würde ich vorschlagen, Ihre Klasse testfähiger zu machen, indem Sie die Klasse dazu bringen, die Eingabequelle als zu akzeptieren ein Konstruktorparameter oder ähnliches (injiziere die Abhängigkeit). Eine Klasse sollte sowieso nicht so an System.in gekoppelt sein.

Wenn Ihre Klasse aus einem Reader besteht, können Sie das einfach tun:

%Vor%     
Mark Peters 28.09.2010 15:04
quelle

Tags und Links