Karta ćwiczenia laboratoryjnego

Java Spring Boot Spring Data JPA H2 Database Thymeleaf Maven

📋 Informacje podstawowe

Pole Wartość
Przedmiot Spring
Forma zajęć laboratorium
Ćwiczenie Lab. 5 / Spring Test + Mockito
Data 23.05.2026
Nazwisko i imię studenta ......................................................
Rok/semestr Rok 3, semestr 6 [studia niestacjonarne]
Ocena ocena cząstkowa
Uwagi do ćwiczenia brak

📝 Opis zadania laboratoryjnego

Napisz kontroler REST w Spring Boot obsługujący kolekcję 3 rekordów z polami: id, imie, nazwisko, miasto. Głównym zadaniem jest przygotowanie testów kontrolera przy użyciu Spring Boot Test i Mockito.

📦 Wymagania

Kod programu należy umieścić w polu Kod programu tego pliku. Plik .md należy dodać do projektu.

Całość należy spakować do formatu .zip:

WSZIB_R3IN_NazwiskoImie_Spring_Lab5.zip

W miejscu NazwiskoImie należy wpisać swoje nazwisko i imię (uwaga na kolejność). Wynik pracy w formie archiwum zip powinien zawierać:

Archiwum WSZIB_R3IN_NazwiskoImie_Spring_Lab5.zip należy uzupełnić o swoje dane w nazwie i przesłać poprzez:

Upload

🎯 Ogólny opis zadania

Celem zadania jest przygotowanie prostego kontrolera Spring Boot oraz napisanie testów dla jego metod przy użyciu Spring Boot Test i Mockito.

Aplikacja powinna obsługiwać kolekcję rekordów z polami: id, imie, nazwisko, miasto.

Kontroler musi udostępnić:

Głównym celem zadania jest napisanie testów dla kontrolera. Możesz przechowywać dane w pamięci (lista) i zainicjalizować co najmniej 3 przykładowe rekordy w kodzie Java.

✅ Wymagania funkcjonalne

Kod wymagania Wymaganie Poziom
WF-01 Aplikacja udostępnia endpoint GET zwracający wszystkie rekordy. wysoki
WF-02 Aplikacja udostępnia endpoint GET pozwalający wyszukać rekord po nazwisko, imie lub miasto. wysoki
WF-03 Aplikacja udostępnia endpoint POST dodający nowy rekord do kolekcji. wysoki
WF-04 Aplikacja udostępnia endpoint DELETE usuwający rekord z kolekcji. wysoki
WF-05 Aplikacja inicjalizuje co najmniej 3 przykładowe rekordy w kodzie Java. wysoki
WF-06 Napisz testy Spring Boot Test + Mockito dla co najmniej jednego GET oraz jednego POST/DELETE. wysoki

🔧 Wymagania niefunkcjonalne

Kod wymagania Wymaganie Poziom
WNF-01 Aplikacja powinna wykorzystywać Spring Boot z zależnościami spring-boot-starter-web i spring-boot-starter-test. wysoki
WNF-02 Kod i testy powinny być czytelne, poprawnie sformatowane oraz podzielone na osobne klasy/pliki (model, serwis, kontroler, test). średni
WNF-03 Struktura projektu powinna być zgodna z konwencją Spring Boot (Maven lub Gradle). średni
WNF-04 Archiwum .zip powinno zawierać folder Program z projektem oraz uzupełniony ten plik .md. wysoki

🧩 Diagram klas

classDiagram class Rekord { -Long id -String imie -String nazwisko -String miasto } class RekordService { +getWszystkie() List~Rekord~ +szukaj(String imie, String nazwisko, String miasto) Rekord +dodaj(Rekord rekord) Rekord +usun(Long id) void } class RekordController { +getWszystkie() List~Rekord~ +getRekord(String imie, String nazwisko, String miasto) Rekord +dodajRekord(Rekord rekord) Rekord +usunRekord(Long id) void } class RekordControllerTest { +testGetWszystkie() +testGetRekord() +testDodajRekord() +testUsunRekord() } RekordService --> RekordController : @Autowired

Legenda diagramu:

Symbol Opis
──> (linia ciągła) Zależność przez wstrzykiwanie @Autowired

💻 KOD PROGRAMU - REALIZACJA

JAVA (Application.java)

// Wklej tutaj kod Java

JAVA (Rekord.java)

// Wklej tutaj kod Java

JAVA (RekordService.java)

// Wklej tutaj kod Java

JAVA (RekordController.java)

// Wklej tutaj kod Java

JAVA (RekordControllerTest.java)

// Wklej tutaj kod Java

🏆 Ocena [wypełnia prowadzący]

Ocena kodu

Kryterium Opis Punkty (max) Punkty uzyskane
K-01 Poprawna struktura projektu Spring Boot i podział na klasy. 2
K-02 Endpointy GET, POST i DELETE działają poprawnie. 2
K-03 Testy kontrolera napisane przy użyciu Spring Boot Test i Mockito. 3
K-04 Kod i testy są czytelne, poprawnie sformatowane i dobrze podzielone. 2
K-05 Inicjalizacja co najmniej 3 rekordów w pamięci Java. 1
Suma 10

Ocena końcowa

Pole Wartość
Ocena (2–5)
Uwagi prowadzącego
Data wystawienia oceny
Podpis prowadzącego