Flujo de Trabajo TDD en Spring Boot
Orientación TDD para servicios Spring Boot con 80%+ de cobertura (unit + integración).
Cuándo Usar
- Nuevas funcionalidades o endpoints
- Correcciones de bugs o refactorizaciones
- Agregar lógica de acceso a datos o reglas de seguridad
Flujo de Trabajo
- Escribir pruebas primero (deben fallar)
- Implementar el código mínimo para que pasen
- Refactorizar con pruebas en verde
- Exigir cobertura con JaCoCo
Pruebas Unitarias (JUnit 5 + Mockito)
@ExtendWith(MockitoExtension.class)
class MarketServiceTest {
@Mock MarketRepository repo;
@InjectMocks MarketService service;
@Test
void createsMarket() {
CreateMarketRequest req = new CreateMarketRequest("name", "desc", Instant.now(), List.of("cat"));
when(repo.save(any())).thenAnswer(inv -> inv.getArgument(0));
Market result = service.create(req);
assertThat(result.name()).isEqualTo("name");
verify(repo).save(any());
}
}
Patrones:
- Arrange-Act-Assert
- Evitar mocks parciales; preferir stubbing explícito
- Usar
@ParameterizedTestpara variantes
Pruebas de Capa Web (MockMvc)
@WebMvcTest(MarketController.class)
class MarketCont…