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
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mirek_dev: akurat z webfluxa nie korzystałem nigdy. Próbowałeś na próbę użyć jakiegoś standardowego, niereaktywnego rest clienta?
To co opisał @farowy to też rozwiązanie, ale to już znacznie więcej roboty, żeby później to jeszcze osetapować na środowisku testowym itp
  • Odpowiedz
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
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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
  • Odpowiedz
@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.
  • Odpowiedz
Cześć,
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\"}";
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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
  • Odpowiedz
@Kamishimi:
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
  • Odpowiedz
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ę:

@Component
class CookieDeleterImpl implements CookieDeleter
  • 18
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

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,
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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

  • Odpowiedz
  • 0
@Saly:

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
  • Odpowiedz
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
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

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:

@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 =
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

✨️ 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,
SoftBull - ✨️ Szkolenie Live: Własny Web Framework w Java! Poznaj ServerSocket i Http...

źródło: wlasny-java-web-framework

Pobierz
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 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
  • Odpowiedz
✨️ 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,
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

W trakcie odpalania kilkudziesięciu springowych integracyjnych testów z Testcontainers, po 10 testach dostaję taki błąd:

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
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

✨️ 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.
SoftBull - ✨️ Szkolenie Live: Własne Adnotacje w Java i Sprytne Ich Użycie! 

Odkryj ...

źródło: adnotacje-w-java

Pobierz
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

✨️ 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.
SoftBull - ✨️ Szkolenie Live: Śledzenie w Czasie Rzeczywistym z Zipkin!

Odkryj, jak ...

źródło: zipkin

Pobierz
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mirasy, 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ę.
  • 18
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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ę.
  • Odpowiedz
✨️ 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
SoftBull - ✨️ Tworzenie aplikacji do strumieniowania obrazu w Spring Boot.

✅ Przejdź...

źródło: live-strumieniowanie-obrazu

Pobierz
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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
  • Odpowiedz
✨️6 Mitów o Spring Boot, w Które Wciąż Wierzysz!✨️

Ostatnio napisałem coś, co wzbudziło sporo kontrowersji. Pomyślałem więc, że wykop również chcieliby się wypowiedzieć na ten temat. Wiadomo, Wykop lubi się nie zgadzać – idealne miejsce do dyskusji!

Oto mity, które postanowiłem obalić:
✅ Lombok oszczędza czas.
SoftBull - ✨️6 Mitów o Spring Boot, w Które Wciąż Wierzysz!✨️

Ostatnio napisałem coś...

źródło: 6-legend-o-springu

Pobierz
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 1
@Icouldbeyourmom:

dlaczego dostęp do zapisów live jest tak absurdalnie drogi w porównaniu z innymi książkami, kursami itd?

Dużo osób ceni sobie sposób, w jaki tłumaczę i jak potrafię przystępnie oraz ciekawie przedstawiać niejasne zagadnienia. Dzięki temu są w stanie zapłacić więcej niż za materiał dotyczący Springu od innego prowadzącego. Cena jest więc uwarunkowana nie tylko moją stawką, która pozwala mi opracować wysokiej jakości szkolenie czy książkę, ale również popytem ze strony
  • Odpowiedz
✨️Szkolenie Live: Elastyczność Springa, Prędkość Redisa!✨️

Poznaj, jak potęga Springa łączy się z szybkością Redisa. Podczas szkolenia:
✅ Poznamy kluczowe założenia Redisa i jego praktyczne zastosowanie,
✅ Napiszemy API w Springu, wykorzystując wielopoziomowe cache'owanie Redisa,
✅Przeprowadzimy praktyczny test wydajności: Redis vs tradycyjne podejście.
SoftBull - ✨️Szkolenie Live: Elastyczność Springa, Prędkość Redisa!✨️

Poznaj, jak po...

źródło: redis

Pobierz
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@SendMeAnAngel: Sprawdziłem temat i trzeba dopisać samemu w Quarkusie jak zrobił to tamten gość. Z drugiej strony to pokazuje trochę brak wsparcia jeszcze tego frameworka. Wiele razy konfigurowalalem SSL dla różnych rzeczy i zawsze była możliwość wskazania ścieżki.
  • Odpowiedz