Chcę przetestować metodę która kopiuje/przenosi pliki z jednego miejsca do drugiego. Ścieżki źródłowe i docelowe plików są podawane jako parametry. Jak najlepiej sprawdzić czy wszystkie pliki zostały przeniesione? Czy robienie dla każdej ścieżki docelowej i/lub źródłowej assertTrue(file.exists()) w pętli jest dobrym pomysłem?
#testowanieoprogramowania #junit #java #programowanie #naukaprogramowania
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@F3NRIR: nie, tylko warto nabrać intuicji "czy jak test nie przejdzie to ja/ktoś będzie w stanie w miarę szybko ogarnąć co nie działa?". Takie zbiórcze asercje jak np. porówanie outputów z jakiegoś ls są o tyle dobre, że pokazują cały wynik a nie składowe, przez co łatwiej analizować takie testy
  • Odpowiedz
Jest opcja, żeby jakoś napisać "expected" dla danego mocka?
Mam klasę testową, dziedziczącą po "CommonTest" i w commonie jest przygotowany mock.
W jednym teście używam wartości expected z commona, w drugim chcę innej. Jest jakaś opcja na to? Używam EasyMocków i PowerMocka. Nie ma opcji przeniesienia tego mocka wyżej. Jest EasyMock.reset, ale to stracę kupę zamochowanych zachowań, których tracić nie chcę :( #java #programowanie #junit #mockito
Zobrazowanie:

public
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#programowanie #java #spring #testowanieoprogramowania #junit

Polecicie jakiś tutorial do pisania testów jednostkowych aplikacji w Springu? (Najlepiej przy użyciu JUnit, Mockito.)

Większość tutoriali o testach skupia się na samym JUnit albo o tym jak w teorii pisać testy.
Samego JUnita nauczyć się jest łatwo, a teorię o tym jak i co powinno się testować to potem sobie
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

via Wykop Mobilny (Android)
  • 2
@mk321: jak podnosisz context springowy to masz testy integracyjne. Oddzielne testy na kazda klase i testujesz wszystko co w danym pakiecie jest wystawione, a nie tylko publiczne metody. Junit4 skoro mowimy o runnerach, wwiec imo mockitorunner, albo dla jakichs utilsow to parametryzowany runner. Controllery sie testuje z mockmvc I controlleradvice wiec powinno tez walidacje i odpowiedzi na bledy pokryc.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 2
@mk321: testuj logikę a nie czy springowe adnotacje działają, najlepiej też jak nic nie mockujesz

Jeśli testujesz metodę kontrolera który wola serwis który jedyne co robi to wola repo żeby zapisać encje - robisz to źle. W ten sposób przetestowales czy spring działa. Pracownicy pivotala pewnie się ucieszą z dodatkowego testu ( ͡° ͜ʖ ͡°)

Kluczem nie jest 100% coverage-u tylko mądre przetestowanie funkcjonalności, logiki biznesowej
  • Odpowiedz
tl;dr Do niedzieli prawie 200 devkursów od 19,90 zł. ( ͡° ͜ʖ ͡°) VP obchodzi 4 urodziny. W związku z tym jest fajna promocja na kursy wideo, które można nabyć do 23 czerwca od 19,90 zł do 39,90 zł LINK. Ja ze swojej strony mogę polecić następujące kursy:

Kurs #git 29,90 zł LINK

Ponad 87 procent respondentów używa tego systemu do przechowywania kodu. Dzięki swojej popularności Git stanowi dziś
tomaszs - tl;dr Do niedzieli prawie 200 devkursów od 19,90 zł. ( ͡° ͜ʖ ͡°) VP obchodz...

źródło: comment_zbCmjWgNg7z8T1UZ8eA4OtxETq3xwX0T.jpg

Pobierz
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Trochę darmowych i tańszych kursów, ebooków i książek dla programistów:

1. 30% na ebooka Serverless na platformie Azure. Do końca dnia (29.04.2019) za 24,50 zł https://polishwords.com.pl/ebooki?view=promocje&id=225

2. 56% na ebooka jQuery. Tworzenie animowanych witryn internetowych i kurs wideo. Do końca tygodnia (05.05.2019) za 39,90zł https://polishwords.com.pl/ebooki?view=promocje&id=231

3.
tomaszs - Trochę darmowych i tańszych kursów, ebooków i książek dla programistów:

...

źródło: comment_2O5SWNmdUVPI4yJWKol72mFPwralidx4.jpg

Pobierz
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mirki - jak mogę przekazać parametr z testów junit do Jenkinsa a dalej na Slacka?

Chodzi o to, że testuje sobie zwrotki z API, w zwrotce mam pewną wartość np. "6879". Teraz chce ją wyciągnąć z tej zwrotki i w jakiś magiczny sposób wypchać info o niej na Slacka.

Ma ktoś jakiś pomysł? Ta liczba ciągle się zmienia tak btw, dlatego potrzebuje ją wyciągać przy każdym teście.

Z
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Muszę stworzyć na szybko monitoring opóźnienia bazy danych - strzelam do dwóch endpointów i weryfikuje czy odpowiedzi się zgadzają, jeśli tak to daje powiadomienie "Live", jeśli nie to "Delay".

Widzę to tak, że Jenkins puszcza mi testy junit co minutę i później zależnie od wyniku daje informację o tym, że coś działa albo nie.

TYLKO - jak obsłużyć takie powiadomienia w Junit? W sensie jeśli test przejdzie to daj takie info, a
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@damianbeat: powiadomienia to raczej tak jak mówi @nesti32 , w jenkinsie. Masz nawet dedykowane pluginy do junita (https://wiki.jenkins.io/display/JENKINS/JUnit+Plugin - ostatnio słabo działa wiki, ale działa :P cierpliwośći). Poza tym trochę słabe używać jenkinsa do monitoringu co minutę. Nie możesz triggerować tego z poziomu systemu monitoringu? Wrzucić to do jakiegoś skryptu i zapnij jako external script w zabbiksie, etc.

Dodatkowo - jaka baza? Zamiast monitorować opóźnienia aktywnie próbkująć sztucznym
  • Odpowiedz
@damianbeat: ah, no i nie musisz mieć koniecznie junita, jak przeniesiesz logikę tego zapytania na bazę i wrzucisz w jakąś procedurkę składowaną, to możesz to sobie sprowadzić do postaci zerojedynkowej, albo zwracać tylko liczbę (czas opóźnienia), etc. Wtedy jest to łatwo podpiąć pod każdy monitoring.
  • Odpowiedz
@cypo: Sorki że znowu zawracam głowę, ale przebudowałem trochę ten projekt i udało mi się wszystkie głosy wcisnąć w jedną klasę chociaż nie jestem pewny czy to dobry pomysł. Dodałem też pakiet profile z controllerem i servisem, który woła do innych serwisów po dane, bo jednak te endpointy nie pasowały do userController, a nie chciałem ich rozrzucać po wszystkich klasach. Teraz serwisy komunikują się tylko z innymi serwisami i z
  • Odpowiedz
@Cheessys: Widzę progres. Chcę zobaczyć wszystko o postach, wchodzę w pakiet z postami i znajduję tylko to. Przy zależnościach między serwisami trzeba uważać tylko na cykle (nie może być referencji w dwie strony).
Jeszcze np. tagi zostały w user service i możesz się zastanowić, ile zależności między pakietami (serwisami z różnych pakietów) można zlikwidować.
Spotkasz jeszcze dużo projektów pisanych bez przemyślenia struktury (wielkie pakiety controller, services itp), ale zastanów się
  • Odpowiedz
#programowanie #java #junit
Koledzy, uczę się pisać testy jednostkowe ale mam z tym problemy. Po pierwsze nie wiem czy rozumuję w sposób prawidłowy dlatego prosiłbym na zerknięcie na przypadek który chcę przetestować (domyślam się, że dla testowanej metody, która dodaje trening do dnia, będę musiał zrobić trzy przypadki). Druga sprawa nie mam zielonego pojęcia dlaczego w linii 56 (w tym linku) wywala mi NullPointerException. Prosiłbym
  • 18
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#junit #java

Mirki, mam rulę w Junit która mi czyści pewne rzeczy po każdym teście. Czy możliwe, żeby @AfterTest nie zdążyła się wykonać w całości przed kolejnym testem? Uruchamiając pojedyncze testy wszystko działa. Uruchamiając wszystkie lokalnie - działa. Na środowisku się wysypuje kilka testów.
Jak dam Thread.sleep na sekundę w metodzie @AfterTest w klasie ruli - wtedy przechodzą wszystkie. Tak jakby nie zdążyło wszystkiego pokasować przed
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#spring #junit #testy

Mirki, mam dziwny problem.
Mam test integracyjny w mojej apce w springu. Test zawiera kilkanaście testów - gdzie postuje pod mój endpoint jsona z danymi. W większości testów jest to ten sam json - a po stronie aplikacji na pewno wszystko działa.

Jeden z testów jest @Transactional. Przed każdym testem czyszczę potrzebne repozytoria:
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mirki - czemu mi to nie działa? ( ͡° ʖ̯ ͡°)

Piszę testy automatyczne api (Rest Assured + junit + maven + maven-surefire-plugin). Próbuję sobie odpalić część testów na podstawie fragmentu tekstu z nazwy klasy. Niestety - tylko dwie klasy z pięciu się odpalają. Pod spodem nazwy klas a w komentarzu część odpowiadająca za surefire plugin.

Błagam - jeśli ktoś ma jakiś pomysł, cokolwiek
damianbeat - Mirki - czemu mi to nie działa? ( ͡° ʖ̯ ͡°)

Piszę testy automatyczne ...

źródło: comment_PBLoucVYpwh1aJiPGkREOXK0ALQB66HD.jpg

Pobierz
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#java #junit #spring

Mirki, na jakiej zasadzie odpalane są testy w Junit? Mam podstawowy projekt mavenowy w spring boot. Testując pewną funkcjonalność mam @Before, który przy każdym test case czyści bazę. Raz na jakieś 100 uruchomień w jednym z tych testów ilość elementów w bazie jest równa 2 (choć dodaje się jeden element, więc tak jakby w tym czasie inny test dodał jakiś element
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Metoda z adnotacja @After powinna kompensowac wszelkie @Before. W zalozeniu oczywiscie ze nie poleci zaden nieobsluzony runtime exception. Ewentualnie przedebugguj jakis przebieg testow zeby wysledzic co tam sie dzieje niedobrego (jakis conditional breakpoint np.). Jedyne co do odpalania testow JUnit, to szeregowanie testow jest przypadkowe, wiec nie mozna polegac na jakims specjalnym porzadku, by testy sie powodzily.
  • Odpowiedz
Mirki, chciałbym w klasie testowej (junit) stworzyć własną adnotację. Ma to działać tak: Definiuje sobie na początku obiekt. Przy każdym teście daje adnotacje @shouldreturn(wartoscPola 1 = wartosc, wartoscPola2 = wartosc). Adnotacja ma ustawiać takie wartości dla obiektu.
Aktualnie przy każdym teście kilkukrotnie muszę wpisywać : when.Obiekt.metoda.thenReturn -> chciałbym to ustawiać przez adnotacje.

Jak najepiej to zrobić?

#java #junit
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#programowanie #java #testy #junit

Miał ktoś kiedyś tak, że podczas odpalania testów pojedyńczo wszystkie przechodziły, a podczas uruchamiania wszystkich w danej klasie niektóre z nich się wywalały?
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@wykopowy_tester: @test_user: zastanawiam sie czy OP przypadkiem nie jest na etapie pisania kodu poruszającego sie po aplikacji, a do samych testów jeszcze nie doszedł ale użył juz metod setUp i tearDown. Chce pisać dalej kod ale przeglądarka mu sie zamyka.
@damianbeat: tak jak juz ktoś pisał, zakomentuj driver.quit() chociaż ja na takim etapie zawsze mam otwarta aplikacje w innym oknie i manualnie sie po niej poruszam
  • Odpowiedz