Mam w swojej aplikacji trzy role i chciałbym przetestować czy zostanie zwrócony odpowiedni błąd jeśli użytkownik nie ma roli admina i próbuje strzelić na endpoint dla admina. W testach mam porobione metody np. sendRequestAsUser, która wyciąga użytkownika z rolą USER z bazy, generuje JWT i zwraca token jako String. Pierwsze co przyszło mi do głowy to napisanie testu sparametryzowanego żeby nie powtarzać kodu, ale tutaj pojawia się problem, bo do adnotacji MethodSource
Wszystko
Najnowsze
Archiwum
W gwoli jasności, to możliwe jest przekazanie niestatycznej metody do
Możliwe, że twoją weryfikację da się zrealizować jeszcze łatwiej (bez bazy danych). Z
więc
Jeżeli chcesz
@MethodSource zmieniając cykl życia testu adnotacją - @TestInstance(PER_CLASS).Możliwe, że twoją weryfikację da się zrealizować jeszcze łatwiej (bez bazy danych). Z
MockMvc mogłoby to wyglądać w następujący sposób: mockMvc.perform(get(...).with(SecurityMockMvcRequestPostProcessors.user().roles(Role.ADMIN))więc
@MethodSource mógłby parametryzować Role albo cały RequestPostProcessor. Tutaj będzie zwykły Springowy User ale tych RequestPostProcessor jest sporo (są też związane z OAuth2). Jeżeli chcesz
WebTestClient to tam to się nazywa mutator (interfejs- 0
@Smevios:
Ta adnotacja
Zrobiłem sobie sparametryzowany test z wykorzystaniem
Ta adnotacja
@TestInstance(PER_CLASS) może mi się przydać, dzięki.Zrobiłem sobie sparametryzowany test z wykorzystaniem
MockMvc i w sumie działa to okey. Są zwolennicy używania MockMvc, jak i są przeciwnicy. Ja jeszcze nie zagłębiałem się w problemy zChcę stworzyć metodę w springowym kontrolerze, z endpointem pod który wyślę dużo danych (dostałem jsona z 20 polami, ale może być ich więcej w przyszłości). i te dane prześlę dalej robiąc calla do zewnętrznego api żeby wyciągnąć jakieś tam dane biznesowe.
No i tu pytanie. Mówią, że GET służy do pobierania danych a POST tylko do zmiany stanu. Ale raczej nie jest to bezpieczne wysyłać te dane w urlu, co wtedy? Można
No i tu pytanie. Mówią, że GET służy do pobierania danych a POST tylko do zmiany stanu. Ale raczej nie jest to bezpieczne wysyłać te dane w urlu, co wtedy? Można
@mirek_dev: GET może mieć body
Niestety nie jest to dobrym pomysłem bo dużo bibliotek / serwerów / proxy HTTP nadinterpretuje specyfikację (lub zostało zakodowana na bazie nieaktualnej, sprzed 2014) i potrafi robić różne dziwne rzeczy jak np. ignorować body w GET albo nie pozwala go dodać po stronie klienta itp. - jeśli tak jest to jest to radosna twórczość tychże bibliotek, bo obecnie obowiązująca specyfikacja HTTP nie zabrania.
Niestety nie jest to dobrym pomysłem bo dużo bibliotek / serwerów / proxy HTTP nadinterpretuje specyfikację (lub zostało zakodowana na bazie nieaktualnej, sprzed 2014) i potrafi robić różne dziwne rzeczy jak np. ignorować body w GET albo nie pozwala go dodać po stronie klienta itp. - jeśli tak jest to jest to radosna twórczość tychże bibliotek, bo obecnie obowiązująca specyfikacja HTTP nie zabrania.
A payload
@mirek_dev: Chyba nie rozumiem twojego problemu. Co jest złego w zrobieniu tego POSTem, że myślisz o GETcie? Po to on w końcu jest.
Mirasy chciałem napisać integracyjny test uderzając pod dany endpoint w controllerze gdzie używam spring webfluxa i w którymś z kolei serwisie uderzam do dwóch zewnętrznych apek. I właśnie te dwa calle chciałem zmockować, ale otrzymuję timeout. Korzystam z WebTestClient i MockWebServer.
Tutaj więcej szczegółów i kod. Pomoże ktoś? Bo siedzę już którąś godzinę nad tym ( ͡° ʖ̯ ͡°)
https://stackoverflow.com/questions/77957328/mocking-webclient-response-in-integration-test-using-mockwebserver-or-alternativ
#spring #springboot #programista15k
Tutaj więcej szczegółów i kod. Pomoże ktoś? Bo siedzę już którąś godzinę nad tym ( ͡° ʖ̯ ͡°)
https://stackoverflow.com/questions/77957328/mocking-webclient-response-in-integration-test-using-mockwebserver-or-alternativ
#spring #springboot #programista15k
@mirek_dev: W Javie nie robię, ale może https://java.testcontainers.org/? Dla testów integracyjnych pod te zewnętrzne serwisy ustawiasz adresy do lokalnych obrazów Dockerowych i setupujesz pod własne potrzeby.
- 0
Czy nazwy endpointów z rolami, które mogę ich używać są ok czy raczej nie powinno się tak robić? Np. /public/products albo /admin/orders. Ułatwia to dość konfiguracje Spring Security, bo po prostu piszesz, że pod /public/* mogą wejść wszyscy a pod"/admin/* tylko admini i nie trzeba do każdego zasobu pisać oddzielnego konfiga.
#java #spring #naukaprogramowania #programowanie #programista15k
#java #spring #naukaprogramowania #programowanie #programista15k
@Nofenak: domyślną daj publiczna, bez nazywania czyli na przykład /products albo /orders.
Jak chcesz żeby użytkownicy z innymi rolami dostawali inne zasoby, to wtedy dorzuć endpointy pod ten typ użytkownika: /admin/products albo /admin/orders
Jak chcesz żeby użytkownicy z innymi rolami dostawali inne zasoby, to wtedy dorzuć endpointy pod ten typ użytkownika: /admin/products albo /admin/orders
@Nofenak: Imho największy sens ma dzielenie według konsumenta API. Np. jeśli masz publiczne API, API pod frontend użytkownika i pod frontend admina, to powinny mieć one własne ścieżki. Wtedy masz największą elastyczność przy zmianie poszczególnych endpointów i wiesz na których konsumentów wpłyną te zmiany. Dodatkowo można pod każdego konsumenta ustawić stosowne nagłówki, caching, itp.
0
Nowa Dacia Spring 2 będzie nawiązywać do wyglądu Dustera III generacji

Nowa Dacia Spring 2, która zadebiutuje na targach w Genewie, będzie zupełnie inaczej wyglądać, zapowiada producent. Auto jest już gotowe do premiery.
z- 0
- #
- #
- #
- #
Cześć,
stworzyłem sobie klasę pomocniczą do rejestracji w której trzymam jsony:
stworzyłem sobie klasę pomocniczą do rejestracji w której trzymam jsony:
public class RegistrationControllerHelper {
public static final String validCredentials =
"{\"username\": \"New\", \"email\": \"new@mail.com\", \"password\": \"Password#3\"}";@Kamishimi:
1. Nie tworzyłbym żadnych Helperów - co taka klasa oznacza? Sam widzisz, że nie do końca wiesz co ona robi i tak ją nazwałeś ( ͡° ͜ʖ ͡°)
2. Jeżeli jest to używane tylko przez test to dałbym to do klasy testowej
3. W nowszej wersji Java możesz użyć """ aby zrobić wielolinijkowy String i wtedy nie bedziesz musiał escepować \"
4. Nie wiem jaka jest logika biznesowa, ale zazwyczaj nie
1. Nie tworzyłbym żadnych Helperów - co taka klasa oznacza? Sam widzisz, że nie do końca wiesz co ona robi i tak ją nazwałeś ( ͡° ͜ʖ ͡°)
2. Jeżeli jest to używane tylko przez test to dałbym to do klasy testowej
3. W nowszej wersji Java możesz użyć """ aby zrobić wielolinijkowy String i wtedy nie bedziesz musiał escepować \"
4. Nie wiem jaka jest logika biznesowa, ale zazwyczaj nie
@Kamishimi:
1. Dalej nie widzę sensu wydzielanai osobnej klasy
to nie jest jakaś skomplikowana logika którą należy wydzielić, tylko integralna część testu
2. Jak już chcesz coś wydzielac to raczej
1. Dalej nie widzę sensu wydzielanai osobnej klasy
new RegisterRequest("New", "new@mail.com", "Password#3");to nie jest jakaś skomplikowana logika którą należy wydzielić, tylko integralna część testu
2. Jak już chcesz coś wydzielac to raczej
Cześć,
bawię się trochę w refactor testów w celu zwiększenia ich czytelności. Miałbym dwa pytania, zobrazujmy sobie je na przykładzie.
Oto klasa którą testuję:
bawię się trochę w refactor testów w celu zwiększenia ich czytelności. Miałbym dwa pytania, zobrazujmy sobie je na przykładzie.
Oto klasa którą testuję:
@Component
class CookieDeleterImpl implements CookieDeleter@twojStaryJebqnany: btw w testach polecam zawsze dodawac strukture:
//given
//when
//then
nazwa testu moze byc typu: ShouldRemoveCookieIfExist, ShouldThrowAnErrorWhen.. itd
//given
//when
//then
nazwa testu moze byc typu: ShouldRemoveCookieIfExist, ShouldThrowAnErrorWhen.. itd
@Kamishimi po prostu metoda jest czytelniejsze od asercji czysto javowych, tam podajesz 2 argument po przecinku i ciężko czasem zobaczyć ten przecinek w assertJ jest to lepiej zrobione
- 1
zainteresowałem się spring webflux oraz jego functional api i jakieś takie chu*owe to się wydaje, ale może mam do tego złe podejście? zamiast czytelnych deklaracji endpointów z jawnie zadeklarowanymi parametrami i zwrotką mam jakieś routingi i handlery bez jawnych typów. bez wczytywania się w kod nie wiadomo co jaki endpoint przyjmuje i co zwraca. to trochę tak jakby się cofnąć w czasie z typów generycznych do typów, które po prostu przechowują Object,
@ly000: Ogólnie to bym chyba odpuścił webflux, bo wraz z nadejściem Project Loom (Java 21) mamy wirtualne wątki, które częściowo rozwiązują problemy które ma rozwiązywać webflux
- 0
@Saly:
no nie jest w tym sensie, że masz ServerResponse i ServerRequest, które mogą przechowywać wszystko. musisz się wczytać w definicję metody, żeby sprawdzić czego oczekuje dany endpoint i co zwraca.
w podejściu z kontrolerem miałbyś coś w
a handler nie jest mocno typowany? Nie rozumiem gdzie jest problem. Możesz podać przykład z kodem?
no nie jest w tym sensie, że masz ServerResponse i ServerRequest, które mogą przechowywać wszystko. musisz się wczytać w definicję metody, żeby sprawdzić czego oczekuje dany endpoint i co zwraca.
w podejściu z kontrolerem miałbyś coś w
Cześć, potrzebuję pomocy. Pracuję nad konfiguracją Spring Security, która jest skupiona na zabezpieczaniu endpointów z podziałem na role: USER i ADMIN. Utworzyłem endpoint DELETE "/api/users/{userId}", który jest dostępny tylko dla roli ADMIN. Napisałem testy z użyciem bazy danych, aby sprawdzić, czy wszystko działa poprawnie. Jednakże, dowiedziałem się, że takie testy nie powinny być zależne od bazy danych i powinny być izolowane. Czy moglibyście doradzić mi, jak najlepiej przetestować te konfiguracje bez angażowania
- 0
Potrzebuję pobrać miejsca na seans w formie DTO (Spring Data JPA). Jedno pole - isFree zależy od tego czy na dane miejsce jest już zarezerwowany bilet.
Sala ma przypisane miejsca, seans sale a bilet seans i miejsce. Chat GPT podał coś takiego:
Sala ma przypisane miejsca, seans sale a bilet seans i miejsce. Chat GPT podał coś takiego:
@query("SELECT new com.cinema.tickets.application.queries.dto.SeatDto(s.rowNumber, s.number, " +
"CASE WHEN (SELECT COUNT(t) FROM Ticket t WHERE t.seatId = s.id) > 0 THEN false ELSE true END) " +
"FROM Seat s WHERE s.hallId =DDD, prezentacje na YT sobie pooglądaj, jest sporo źródeł. Tu mi się nie chce rozpisywać
- 0
@rolling_stone_with_no_hope: Mówisz o np. takich prezentacjach? https://www.youtube.com/watch?v=ILBX9fa9aJo&t=2025s Chodzi ci ogólnie o to, żeby używać package private?
- 0
✨️ Szkolenie Live: Własny Web Framework w Java! Poznaj ServerSocket i HttpHandler ✨️
Odkryj, jak samodzielnie stworzyć i wykorzystać framework webowy w Javie.
Podczas szkolenia:
✅ Zrozumiesz mechanizmy obsługi żądań HTTP w czystej Javie, kluczowe dla tworzenia aplikacji internetowych,
✅ Zobaczysz, jak możliwe jest projektowanie i implementacja własnego frameworka webowego, od podstaw,
Odkryj, jak samodzielnie stworzyć i wykorzystać framework webowy w Javie.
Podczas szkolenia:
✅ Zrozumiesz mechanizmy obsługi żądań HTTP w czystej Javie, kluczowe dla tworzenia aplikacji internetowych,
✅ Zobaczysz, jak możliwe jest projektowanie i implementacja własnego frameworka webowego, od podstaw,
źródło: wlasny-java-web-framework
Pobierz- 0
@nad__czlowiek: JavaEE jest mi całkiem dobrze znana, gdyż sam spędziłem w niej trochę śmiesznych, a momentami bolesnych lat. I jestem z tych, którzy tworzyli web appki z wykorzystaniem JSF/PrimeFaces - więc potwierdzam plotki ( ͡° ͜ʖ ͡°) Ciekawe czasy, ale nie wiem czy chciałbym wracać. ¯\(ツ)/¯ Stack top-technologiczny dla Java Developerów kilkanaście lat temu był ciekawy...
Moje pominięcie JavaEE/JakartaEE było celowe, ponieważ temat dotyczy frameworków, a
Moje pominięcie JavaEE/JakartaEE było celowe, ponieważ temat dotyczy frameworków, a
✨️ Obserwuj #mirkoanonim
Pytanie do mirków #programista15k #java #spring oraz #programowanie #naukaprogramowania
Czy kojarzycie może jakiś dobry kurs pokazujący jak ktoś tworzy przykładową praktyczną apkę java + spring w chmurze? Taka która by np korzystała z AWS: S3, EC2, SQS/SNS, Aurora MySQL itd. Jest sporo kursów gdzie ktoś pokazuje od A do Z jak np tworzy pseudo sklep ecommerce z użyciem java,
Pytanie do mirków #programista15k #java #spring oraz #programowanie #naukaprogramowania
Czy kojarzycie może jakiś dobry kurs pokazujący jak ktoś tworzy przykładową praktyczną apkę java + spring w chmurze? Taka która by np korzystała z AWS: S3, EC2, SQS/SNS, Aurora MySQL itd. Jest sporo kursów gdzie ktoś pokazuje od A do Z jak np tworzy pseudo sklep ecommerce z użyciem java,
@mirko_anonim: Chcesz zmienić robote? A pokaż CV. Albo sie na PW odezwij.
@mirko_anonim: ale ja nie trolowalem. Postaw sobie coś na tym AWS i dlub. Nie wiem bo do gcp po prostu są kursy google
- 0
W trakcie odpalania kilkudziesięciu springowych integracyjnych testów z Testcontainers, po 10 testach dostaję taki błąd:
Szczegóły na 4programmers: https://4programmers.net/Forum/Java/370632-problem_z_testcontainers_przy_wielu_testach?p=1936802#id1936802
#java #spring #naukaprogramowania #programowanie #programista15k
org.springframework.dao.DataAccessResourceFailureException: Unable to acquire JDBC Connection [HikariPool-1 - Connection is not available, request timed out after 30003ms.] [n/a]Szczegóły na 4programmers: https://4programmers.net/Forum/Java/370632-problem_z_testcontainers_przy_wielu_testach?p=1936802#id1936802
#java #spring #naukaprogramowania #programowanie #programista15k
- 2
✨️ Szkolenie Live: Własne Adnotacje w Java i Sprytne Ich Użycie!
Odkryj tajniki adnotacji w Javie i naucz się, jak wykorzystać je do zwiększenia efektywności i czytelności Twojego kodu. Dołącz do naszego szkolenia, gdzie:
✅ Zrozumiesz zasady stosowania adnotacji w Javie, ich strukturę i główne zastosowania.
✅ Nauczysz się projektować i przetwarzać własne adnotacje, co otworzy przed Tobą nowe możliwości w personalizowaniu kodu.
Odkryj tajniki adnotacji w Javie i naucz się, jak wykorzystać je do zwiększenia efektywności i czytelności Twojego kodu. Dołącz do naszego szkolenia, gdzie:
✅ Zrozumiesz zasady stosowania adnotacji w Javie, ich strukturę i główne zastosowania.
✅ Nauczysz się projektować i przetwarzać własne adnotacje, co otworzy przed Tobą nowe możliwości w personalizowaniu kodu.
źródło: adnotacje-w-java
Pobierz
Treść przeznaczona dla osób powyżej 18 roku życia...
@Liryczne_MMA: To się przerzuć na inny język. Gdzie problem?
- 1
✨️ Szkolenie Live: Śledzenie w Czasie Rzeczywistym z Zipkin!
Odkryj, jak Zipkin rewolucjonizuje śledzenie w aplikacjach opartych na Spring Boot. Podczas szkolenia:
✅ Poznamy główne funkcje i korzyści płynące z wykorzystania Zipkina,
✅ Przejściemy przez proces integracji Zipkina z aplikacją Spring Boot, uruchamiając przykładowe usługi,
✅ Zobaczymy w praktyce, jak wizualizować przepływ żądań w systemie i śledzić ich trasę między usługami.
Odkryj, jak Zipkin rewolucjonizuje śledzenie w aplikacjach opartych na Spring Boot. Podczas szkolenia:
✅ Poznamy główne funkcje i korzyści płynące z wykorzystania Zipkina,
✅ Przejściemy przez proces integracji Zipkina z aplikacją Spring Boot, uruchamiając przykładowe usługi,
✅ Zobaczymy w praktyce, jak wizualizować przepływ żądań w systemie i śledzić ich trasę między usługami.
źródło: zipkin
PobierzMirasy, pytanie o tracing w appce spring bootowej. Jest to nowa apka, którą robimy od zera i potrzebuję dodać tracing do logów.
Mamy eventy w Azure Event Hubs, które na razie (bo nie mamy jeszcze proda - trochę taka zabaw póki co) - generujemy ręcznie poprzez feature Azurowy "Data Generator", gdzie możemy podać jsona i dodać do "kolejki", a w naszej appce spring bootowej consumer sobie je pobiera i wywołuje odpowiednią akcję.
Mamy eventy w Azure Event Hubs, które na razie (bo nie mamy jeszcze proda - trochę taka zabaw póki co) - generujemy ręcznie poprzez feature Azurowy "Data Generator", gdzie możemy podać jsona i dodać do "kolejki", a w naszej appce spring bootowej consumer sobie je pobiera i wywołuje odpowiednią akcję.
@mirek_dev: zipkin
@exori_vis: Ale jak napisałem wyżej, taki sidecar container działa poza procesem aplikacji więc ilość informacji jakie może zgromadzić na jej temat jest mocno ograniczona. Do podstawowego observability i monitoringu wystarczy. Przy bardziej zaawansowanych use case'ach trzeba robić instrumentację.
- 5
✨️ Tworzenie aplikacji do strumieniowania obrazu w Spring Boot.
✅ Przejdź razem z nami przez projektowanie i tworzenie aplikacji do LiveStreamingu obrazu w Springu z wykorzystaniem Websocketów! W trakcie wydarzenia, krok po kroku, omówimy proces budowy aplikacji, zapewniając płynność i jakość strumieniowania w czasie rzeczywistym.
✅ Łącz świetną zabawę i cenną naukę podczas naszej sesji LiveCodingu! Dołącz do mnie w trakcie kodowania, gdzie razem stworzymy aplikację i zbadamy jej kluczowe elementy. To okazja, aby
✅ Przejdź razem z nami przez projektowanie i tworzenie aplikacji do LiveStreamingu obrazu w Springu z wykorzystaniem Websocketów! W trakcie wydarzenia, krok po kroku, omówimy proces budowy aplikacji, zapewniając płynność i jakość strumieniowania w czasie rzeczywistym.
✅ Łącz świetną zabawę i cenną naukę podczas naszej sesji LiveCodingu! Dołącz do mnie w trakcie kodowania, gdzie razem stworzymy aplikację i zbadamy jej kluczowe elementy. To okazja, aby
źródło: live-strumieniowanie-obrazu
Pobierz- 2
Jak dodajecie dane testowe w testach integracyjnych? Przez repozytoria czy przez pliki sql? Który sposób uważacie za lepszy i dlaczego?
#java #spring #naukaprogramowania #programowanie #programista15k
#java #spring #naukaprogramowania #programowanie #programista15k
konto usunięte via Wykop
- 1
@Nofenak: Jak testujesz, to testujesz tylko wejście i wyjście na jednym endpoincie? A może odpalanie kilku endpointów jeden po drugim? Zaglądasz do bazy danych co się tam dzieje? Mockujesz lub mockujesz i weryfikujesz użycie niektórych mocków?
Zakładając, że chcesz przetestować aplikację i zasilić ją najpierw danymi do testów, bez testowania samego dodawania tych danych:
Kilka pytań odnośnie repozytoriów: Jakiego repozytorium chciałbyś użyć do zapisu danych do zasilenia bazy do testów? Co jeśli
Zakładając, że chcesz przetestować aplikację i zasilić ją najpierw danymi do testów, bez testowania samego dodawania tych danych:
Kilka pytań odnośnie repozytoriów: Jakiego repozytorium chciałbyś użyć do zapisu danych do zasilenia bazy do testów? Co jeśli
konto usunięte via Wykop
- 1
@MilionoweMultikonto: ;d
Adnotację org.springframework.test.context.jdbc.Sql można użyć testach do zaczytywania plików .sql z resources ( ͡° ͜ʖ ͡°)
Adnotację org.springframework.test.context.jdbc.Sql można użyć testach do zaczytywania plików .sql z resources ( ͡° ͜ʖ ͡°)
1
Test: Dacia Spring - jak jeździ tani elektryk? | Moto Pod Prąd

Dacia Spring w swym założeniu jest czymś na wzór Malucha naszych czasów tyle tylko, że wychodzi jej to dosyć średnio.
z- 7
- #
- #
- #
- #
- #
- #
















Co trzeba umieć, żeby dostać się na staż z javy, albo chociaż DARMOWE praktyki w jakimś januszexie? Muszę odbyć praktyki na studiach, a obecna sytuacja na rynku jest przynajmniej godna pożałowania. W ciągu ostatniego miesiąca chodziłem na targi pracy i ofert było tyle co kot napłakał, zostawiłem CV o ile w ogóle na to pozwalali, oczywiście zero odzewu. Mam świadomość, że projekty w moim portfolio nie są najlepsze