Test unitari con JUnit e Mockito
Testi i componenti in isolamento.
Test unitari con JUnit e Mockito è una lezione Spring Boot 4 Microservices & REST APIs gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Spring Boot 4 Microservices & REST APIs, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Spring Boot 4 Microservices & REST APIs include 4 lezioni in totale.
Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.
Why Unit Tests
A unit test verifies a single class in isolation, with its collaborators replaced by fakes.
- Fast — no Spring context, no database
- Focused — tests one piece of logic
- Reliable — no external dependencies
JUnit 5 Basics
Spring Boot uses JUnit 5 (Jupiter). A test is a method annotated with @Test.
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class CalculatorTest {
@Test
void addsTwoNumbers() {
assertEquals(5, 2 + 3);
}
}Lifecycle Annotations
Use @BeforeEach to set up state before each test and @AfterEach to clean up.
@BeforeEach
void setUp() {
calculator = new Calculator();
}
@Test
void addsCorrectly() {
assertEquals(7, calculator.add(3, 4));
}AssertJ Fluent Assertions
Spring Boot bundles AssertJ for readable assertions with assertThat.
import static org.assertj.core.api.Assertions.assertThat;
assertThat(result).isEqualTo(42);
assertThat(list).hasSize(3).contains("a");What is Mockito
Mockito creates mock objects — fake implementations of dependencies whose behavior you control.
This lets you test a class without its real collaborators (database, HTTP clients, etc.).
Creating Mocks
Annotate the test class with @ExtendWith(MockitoExtension.class). Use @Mock for dependencies and @InjectMocks for the class under test.
@ExtendWith(MockitoExtension.class)
class UserServiceTest {
@Mock
UserRepository repository;
@InjectMocks
UserService service;
}Stubbing with when/thenReturn
Define a mock's behavior with when(...).thenReturn(...).
@Test
void returnsUserById() {
User alice = new User("1", "Alice");
when(repository.findById("1"))
.thenReturn(Optional.of(alice));
User result = service.getById("1");
assertThat(result.getName()).isEqualTo("Alice");
}Throwing from a Mock
Use thenThrow to simulate error conditions.
when(repository.findById("99"))
.thenThrow(new RuntimeException("DB down"));
assertThrows(RuntimeException.class,
() -> service.getById("99"));Verifying Interactions
verify checks that a mock method was called with expected arguments.
@Test
void savesUser() {
service.create(new User("2", "Bob"));
verify(repository).save(any(User.class));
verify(repository, times(1)).save(any());
}Argument Matchers
Matchers like any(), eq(), and anyString() make stubs flexible.
when(repository.findByName(anyString()))
.thenReturn(List.of(new User("1", "Alice")));
verify(repository).deleteById(eq("1"));Capturing Arguments
ArgumentCaptor captures the value passed to a mock so you can assert on it.
ArgumentCaptor<User> captor =
ArgumentCaptor.forClass(User.class);
verify(repository).save(captor.capture());
assertThat(captor.getValue().getName())
.isEqualTo("Bob");Quick Check
Test your understanding of Mockito.
Recap
You learned to write fast unit tests:
- JUnit 5 with
@Test,@BeforeEach - AssertJ
assertThatfor readable checks - Mockito
@Mock/@InjectMocks when/thenReturnto stub,verifyto confirm calls
Impara Java con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 24
- Lezioni
- 93
Domande Frequenti
La lezione «Test unitari con JUnit e Mockito» è gratuita?
Sì — il testo completo di «Test unitari con JUnit e Mockito» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Spring Boot 4 Microservices & REST APIs, passa a CoddyKit PRO. Il corso Spring Boot 4 Microservices & REST APIs include 4 lezioni in totale.
Cosa imparerò in «Test unitari con JUnit e Mockito»?
Testi i componenti in isolamento. Eserciti Spring Boot 4 Microservices & REST APIs con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Spring Boot 4 Microservices & REST APIs?
Non è richiesta alcuna esperienza precedente. Spring Boot 4 Microservices & REST APIs su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Test unitari con JUnit e Mockito»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Spring Boot 4 Microservices & REST APIs?
Sì. Ogni lezione Spring Boot 4 Microservices & REST APIs include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Test unitari con JUnit e Mockito
- Test del web layer con MockMvc
- Test di integrazione con @SpringBootTest
- Dipendenze reali con Testcontainers