JUnit ve Unit Testing konusunda çok yeni ve tarayıcı nesnesine kullanıcı girdilerinin alay edilmesiyle ilgili bir sorum var. Test etmek istediğim şu kodum var. Çok basit.Kullanıcı girdisini Tarayıcı nesnesine alay için Junit'i kullanma
Çalıştır Kod
import java.util.Scanner;
public class MyGame{
public MyGame() {
Scanner response = new Scanner(System.in);
int game;
System.out.println("Enter a game.");
System.out.println("Press 1 for Super Awesome Bros.");
System.out.println("Press 2 for a Random game.");
game = response.nextInt();
if (game == 1){
System.out.println("Super Awesome Bros.");
}
}
}
İşte benim Testcase benim deneme ortamımızda Yani
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import org.junit.contrib.java.lang.system.StandardOutputStreamLog;
import org.junit.contrib.java.lang.system.TextFromStandardInputStream;
import static org.junit.Assert.assertThat;
import static org.hamcrest.CoreMatchers.containsString;
import static org.junit.contrib.java.lang.system.TextFromStandardInputStream.*;
@RunWith(JUnit4.class)
public class Testsuite {
@Rule
public final StandardOutputStreamLog out = new StandardOutputStreamLog();
@Rule
public final TextFromStandardInputStream in = emptyStandardInputStream();
@Test
public void printOutput() {
in.provideText("1\n");
new MyGame();
assertThat(out.getLog(), containsString("Super Awesome Bros."));
}
}
, ben 1 yüzden beklenen çıkışı alabilir olmak girişi alay çalışıyorum olduğunu. Ama bir sebepten dolayı kodum çıktıdan bağımsız olarak geçer. Neyi yanlış yaptığımı bilmiyorum. Çıktı beklenen değil ise test başarısız olmalıdır. Birisi sorunu tespit edebilir mi? Yine, sadece JUnit ve Unit Testing'in bir kavrayışını almaya çalışıyorum. Çoğunlukla Python'da test yapmak için kullanıyorum. Gelişmiş olan herkese teşekkürler.
[IntelliJ IDEA] 'yı yükleyin (https://www.jetbrains.com/idea/), test adını sağ tıklayıp "Hata Ayıklama" yı seçin, sonra yürütme işlemini izleyebilecek ve nedenini kolayca bulabileceksiniz. başarısız olur/başarılı olur. Ayrıca, nasıl yapılacağından emin değilseniz, hata ayıklama hakkında bilgi edinin: https://www.jetbrains.com/help/idea/2016.1/debugging.html – user3707125
Testin ilk satırını değiştirirseniz testin hala yeşil olduğunu mu demek istiyorsunuz? in.provideText ("2 \ n"); '? –
Testinizi nasıl yürütüyorsunuz? –