mk321
#java #programowanie #netbeans

Jak szybko zrobić test programu konsolowego?

Tzn. mam program i od użytkownika pobieram np. 10 intów. Program coś tam robi i wypisuje wynik. Co zrobić, żebym podczas testowania nie musiał ręcznie wklepywać tych 10 danych, tylko je jakoś wkleić?

  • Najlepsze
  • Wszystkie komentarze
akurczak
raczejNiekoniecznie
@mk321: Tak, m.in. JUnit. Prawdę mówiąc, niewiele więcej czasu Ci zajmie nauka i zastosowanie JUnita, niż wymyślanie swojej metody do tego typu testowania - potem stwierdzisz, że można coś zgeneralizować i jeszcze raz i jeszcze raz.... i w efekcie napiszesz swojego frameworka testowego.

k.....r
k.....r
@mk321: przekierowac wejscie/wyjscie + time
echelon_
Zamiana w programie pobierania danych z System.in na zmienne na sztywno średnio mi sie podoba (bo musiałbym to zrobić w wielu funkcjach)


@mk321: To znaczy, że program słabo napisany.
k.....r
k.....r
@mk321: time: http://www.thegeekstuff.com/2012/01/time-command-examples/

przekirowanie i/o: http://linuxcommand.org/lts0060.php

na windowsie tez dziala, a time muszisz sobie jakies znalezc sam
akurczak
@mk321: Dwukrotnie podmieniasz strumień wejścia, więc scanner wykorzysta ten ostatni, gdzie na wejściu jest tylko dwójka. Jeśli chcesz wykorzystać jak w przykładzie metodę

nextLine()
to po prostu będziesz miał np.
k.....r
k.....r
@kuhar: czyli cos w stylu: time appName >out.txt <int.txt
raczejNiekoniecznie
@mk321: Do czegoś takiego zostały stworzone testy jednostkowe.
mk321
mk321 Autor
0
@kuhar: @kuhar: Moglibyście podać jakiś przykład/linka o co chodzi?

@akurczak: Dzięki za link. Szukałem tam, ale tego nie widziałem.

Jak wrzucam tylko
mk321
mk321 Autor
0
@kuhar: A to w Bashu na Linuksie. Jest jakiś odpowiednik tima w Wierszu Poleceń (pracujemy pod Windowsami)? Bo przekierowania strumieni to się robi podobnie.

Chociaż wolałbym, żeby było spod NetBeansa, a nie przełączać się na konsolę ;P
mk321
mk321 Autor
0
@akurczak: Wczytuję na zmianę i Stringi i inty.

Próbowałem z \n, ale mi nie działało. A rzeczywiście dla przykładu co podałem to działa.

Bo też mam problem z wczytywaniem na zmianę. Bo jak zrobię nextInt() i potem chcę zrobić nextLine(), to muszę zrobić jeszcze raz nextLine() (bo z tamtego inta została pusta
akurczak
@mk321: Zawsze możesz wszystko wczytywać jako

nextLine()
, a tam, gdzie masz inty wykorzystać statyczną metodę

Integer.parseInt(String str)