Robiłem dziś code review dla #programista15k w #java
Typ implementowal ręcznie optimistic locking korzystając z AWS sdk dla dynamodb.
I napisał do tego #!$%@? testy sprawdzające to na bazie embedded, pełne mockow i bardzo skomplikowane. Były dwa - jeden przechodził, drugi rzucał wyjątek.

Okazało się, że typ stawiał w testach bazkę, ale zależności do repozytorium zamockowal. Nigdy nie odpytał prawdziwej bazy. Nawet tego nie zauwazyl, a mocki tak ustawił, że testy przechodziły.
Okazało się, że typ stawiał w testach bazkę, ale zależności do repozytorium zamockowal. Nigdy nie odpytał prawdziwej bazy.


Czy jest już późno i nie rozumiem co Ty piszesz czy inni też mają problem ze zrozumieniem?
Cześć, mam taki test.

@test
void whenUserDeleted_SecondDeletionReturnNotFound() throws Exception {
Integer userId = idFetcher.fetchByUsername("Mark");

Cookie sessionId = auth.loginAdminUser();

mockMvc.perform(delete("/api/v1/users/" + userId).cookie(sessionId))
.andExpect(status().isOk());

mockMvc.perform(delete("/api/v1/users/" + userId).cookie(sessionId))
.andExpect(status().isNotFound());
}

Zastanawiam się, czy nie powinienem umieścić tego fragmentu kodu w jakiejś metodzie pomocniczej, skoro głównym celem test jest sprawdzenie 404. Co myślicie?

mockMvc.perform(delete("/api/v1/users/" + userId).cookie(sessionId))
.andExpect(status().isOk());

#naukaprogramowania #java #programowanie
@quwer: z tego co zrozumialem payU poland czyli payu gpo udostepnia biblioteki sdk dla php i androida/ios. czyli nie wspiera javy chyba ze coś przeoczyłem.


@osabeznosa: przeoczyłeś, że nie potrzebujesz biblioteki. Komunikacja odbywa się z pomocą REST API:

Oferujemy dwa główne protokoły: REST API oraz Classic API.


A to oznacza, że masz po stronie payu listę endpointów i każdą operację na nich robisz za pomocą REST. Jasne, można to opakować
Co według Was powinna zawierać apka z Java Spring i Hibernate? Chce się dostać na staż/praktyki cokolwiek aby zaczać mam coś zbudowane ale nie wiem czy to wystarczy, mam encje mapowane na tabele, repozytoria, kontrolery CRUD, walidacje danych, wyjątki, testy, co by Was zadowoliło na zasadzie o to umie jest spoko to jest ważne itd? #java and #programowanie słucham, i tak wiem że konkurencja duża i cieżko się przebić ale trudno :p
Ja jak ostatnio rekrutowałem na staz to nie trzeba było nic ze springa znać. Patrzyliśmy tylko na to czy ktoś w miarę umie jave i czy jest studentem kierunku technicznego


@LazyInitializationException: to prawda, rzadko kiedy pytaja ze springa ale trudno sie przebic na staz, no i bez statusu studenta to elo, bo kazda zlotowka sie liczy ( ͡° ͜ʖ ͡°)
#testowanieoprogramowania #programowanie #programista15k #java

Zaraz #!$%@?ę laptoka, pomóżcie (podejrzewam że zagadnienia ultra łatwe).
Zabieram się za jave od dupy strony, bo od Selenium, muszę od zera sobie uporządkować javę, ale to jutro ( ͡º ͜ʖ͡º)

Mam zestaw testów. Każdy test to osobna klasa, załóżmy że wygląda to tak:
- test1 // rejestracja osoby, zakończone wylogowaniem
- test2 // zalogowanie osoby, zakończone usunięciem konta
- test3 // w
@Goronco:

Zaczynając od Selenium i Java, podszedłeś do nauki programowania w interesujący sposób. Twoje pytania dotyczą zarówno podstaw programowania w Javie, jak i bardziej zaawansowanych koncepcji zarządzania danymi między klasami. Odpowiem krok po kroku na każde z Twoich pytań, przedstawiając pojęcia, które będą Ci potrzebne:

### 1. Tworzenie Danych Testowych

Zaczynasz od bardzo dobrej praktyki, jaką jest generowanie danych testowych przed wykonaniem testów. Możesz to zrobić w dedykowanej klasie lub metodzie
@Nofenak: nie testuje się controllerów unitowo tylko integracyjnie, więc żadne mockMVC. Zero mockowania w warstwie controllera, serwisów czy repozytorium, jedynie deep stuby do jakichś zewnętrznych serwisów (mock na RestTemplate czy innego klienta http)

A i co do repo to kiedyś stosowało się H2/inMemory DB ale teraz najlepiej stawiać TestContainers dockerowe takie coś
@Nofenak: niczego, kontrolery testuje się integracyjnie. Bazę stawiasz jako testcontainer, zewnętrzne serwisy stubujesz przez wiremocka.

Dzięki temu aplikacja uruchamiana w ramach testów integracyjnych jest praktycznie jeden do jednego odwzorowaniem tego, co się dzieje na produkcji.

Wszelkie mocki, Mockito, a już zwłaszcza PowerMock należy #!$%@?ć prądem.
@Saddam_Husajn: patrzylem na ten kurs w 2022, on w rok to samej javy tylko uczy zero frameworkow xDD jak masz wiecej czasu i znasz podstawy to imo szybciej ruszysz, nie jestem fanem takich kursow gdzie na jakies totalne podstawy masz tydzien i na mega wazne streamy czy koelkcje tez masz tydzien xDDD
Z nieskrywaną dumą przedstawiam Wam kompletnie przebudowane Programistyczne Bingo w wersji 8.0. Był to naprawdę świetny projekt w swoich założeniach, ale jednak leżała w nim szata graficzna. Postanowiłem je przebudować całkowicie od początku. Co się zmieniło w tej odsłonie?

1. Totalnie nowa szata graficzna. Jest to teraz kwadrat o boku 7x7 pól, każde pole ma 300x300 pikseli i wygląda to teraz jak prawdziwa karta do bingo
2. Ujednoliciłem czcionkę i zastosowałem jej
Saddam_Husajn - Z nieskrywaną dumą przedstawiam Wam kompletnie przebudowane Programis...

źródło: Programistyczne Bingo 8.0

Pobierz
U czu może chodzić se, bo jusz mi nawet chat gpt się zapętlił na tym problemie?

3 screeny są, Kotlin + Groovy + Spring.
1. RestController

@RestController
@RequestMapping("/search")
class SearchApi(
private val searchService: SearchService
){

@PostMapping
suspend fun postSearch(
@RequestHeader("Authorization") authorization: String,
@RequestBody request: PostSearchRequestDto
): ResponseEntity<SearchDto> {
return searchService.startSearch(authorization, request)
.let { ResponseEntity.ok(it) }
}
}

2. Strzelam do endpointa z tego controllera za pomocą TestRestTemplate

restTemplate.postForEntity("http://localhost:$port/search", request1, String.class)
aczutuse - U czu może chodzić se, bo jusz mi nawet chat gpt się zapętlił na tym probl...

źródło: gpt wysiadl

Pobierz