2012-11-03 20 views
5

aşağıda verilmiştir:JUnit konsolundaki kullanıcı girişi kabul etmek nasıl işlev için JUnit test case yazmaya çalışıyorum

class A{ 
    int i; 
    void set() 
    { 
    Scanner in=new Scanner(System.in); 
    i=in.nextInt(); 
    } 
} 

i bunun için bir JUnit test vakası oluşturun Şimdi ne zaman benim sorunum, öyle değil Kullanıcıdan giriş hariç:

public void testSet() throws FileNotFoundException { 
    System.out.println("set"); 
    A instance = new A(); 
    int i=1; 
    instance.set(i); 
    // TODO review the generated test code and remove the default call to fail. 
    //fail("The test case is a prototype."); 
} 

Lütfen kullanıcıdan gelen girdileri kabul etmek için ne yapmalıyım?

+0

Ben daha uygun hale getirmek için junit aswell etiketli var .. :) – PermGenError

+0

@ chaitanya10 Teşekkürler – user1778824

+2

JUnit testlerinde kullanıcı girdisine ihtiyacınız yok. Bazı “InputStream” ile test etmeniz gerekiyorsa, bunu “OutputStream” inize ekleyin ve programlı olarak besleyin. –

cevap

7

Sen sahte kullanıcı girişine System.setIn() kullanabilirsiniz:

String inputData = "user input data"; 
System.setIn(new java.io.ByteArrayInputStream(inputData.getBytes())); 

Artık set() yöntemini çağırırsanız sizin dize yerine standart girdi verileri okuyacaktır.