Saltar al contenido principal
Mockito
Framework

Formación corporativa en Mockito

Framework de mocking de referencia en el stack Java empresarial.

Evidencias FUNDAE Activación guiada Evaluación con IA Itinerario a medida

¿Prefieres verlo en directo? Agenda una demo sin compromiso.

Resumen del itinerario en Mockito

Para qué equipos

Equipos técnicos que incorporan Mockito a su stack productivo o consolidan competencias antes de un proyecto crítico. Adaptamos el temario al nivel de partida y al stack acompañante.

Qué se trabaja

Lecciones aplicadas y ejercicios prácticos en Mockito resueltos en el IDE del navegador, con corrección automática por IA y proyectos integradores revisados con rúbrica explícita.

Cómo se contrata

Propuesta concreta sobre teleformación, aula virtual o plan mixto. Sin coste de setup, sin permanencia, con evidencias FUNDAE exportables para la entidad organizadora.

Activación en 3 pasos

Diseñamos el itinerario, el alcance y el calendario según el nivel y el stack de tu equipo. Evidencias FUNDAE exportables, sin permanencia ni coste de setup.

  1. 1 Demo o llamada
    30 min con el fundador. Cuéntanos el stack, el nivel y el calendario.
  2. 2 Propuesta
    Itinerario y modalidad (teleformación, aula virtual o mixto) con evidencias FUNDAE exportables.
  3. 3 Tenant activo
    Tu equipo entra con SSO, asignaciones automáticas y panel admin completo.

¿Prefieres verlo en directo? Agenda una demo sin compromiso.

Qué incluye la formación

Toda la plataforma CertiDevs disponible para tu equipo durante el itinerario. Sin costes ocultos ni módulos premium.

Entornos de programación online, sin instalar nada en el equipo del alumno.
Evaluación con IA de cada ejercicio de código, proyecto y ensayo, con feedback y nota.
Certificado verificable con NIF del alumno y firma digital de CertiDevs.
Panel admin de empresa: alta masiva CSV, asignaciones, foros y encuestas.
Rol inspector FUNDAE con acceso de solo lectura a actividad y resultados.
Reportes exportables en Excel: accesos, progreso, completion y satisfacción.
Integración con tu LMS: LTI 1.1 + 1.3 Deep Linking y exportación SCORM 1.2.
SSO con tu Active Directory (OIDC, Microsoft Entra, Google Workspace).
White-label opcional: subdominio propio, logo y tema de tu marca.
Pruebas técnicas: mismos exámenes para evaluar candidatos en selección.
Foros y mensajería tutorial integrados, requisito FUNDAE cubierto de serie.
Soporte directo de nuestro equipo durante toda la formación.

Cursos disponibles en Mockito

Cada curso se puede asignar de forma independiente o combinar en un plan formativo.

Curso completo Mockito

Curso completo de Mockito, el framework de mocking de referencia para escribir tests unitarios y de integración fiables en Java. Aprendes a crear dobles de prueba con criterio, configurar stubbing avanzado, verificar interacciones con precisión, aplicar estilo BDD, sustituir métodos estáticos sin herramientas legacy e integrar todo con Spring Boot. Al terminar dominas una práctica de testing alineada con suites empresariales.

Ver curso
Especialización Mockito: fundamentos, verificación y BDD

Curso base de Mockito sobre Java moderno y JUnit Jupiter para equipos backend. Aprendes a crear mocks y stubs, verificar interacciones con argument matchers y captors, escribir tests en estilo BDD y aplicar las técnicas en tests de servicios reales. Al terminar tienes un dominio fluido del framework para sostener una suite de tests unitarios fiable en proyectos Java empresariales.

Ver curso
Especialización Mockito: spies, BDD, mockStatic, Spring Boot y calidad de infraestructura

Curso avanzado de Mockito para equipos Java que ya cubren lo básico y necesitan patrones de equipo alineados con CI/CD. Aprendes mocking parcial con spies, BDDMockito en profundidad, sustitución de métodos estáticos sin herramientas legacy, integración real con Spring Boot Test, dependencias reales acotadas con Testcontainers y mutation testing para medir la fuerza de tu suite. Al terminar tus tests detectan regresiones de comportamiento, no solo de cobertura.

Ver curso
Especialización Mockito: verificación, matchers, captors y orden de invocaciones

Curso centrado en la mitad menos visible del testing con mocks: cómo verificas las interacciones. Aprendes a comprobar invocaciones con criterio, combinar matchers sin volver los tests frágiles, capturar argumentos para aserciones ricas, asegurar el orden entre colaboradores y trabajar con operaciones asíncronas. Al terminar tus tests fallan por contrato roto, no por asserts vagos sobre valores internos.

Ver curso

Ver todos los cursos del catálogo

Estructura del itinerario

Módulos, lecciones y ejercicios del itinerario

Este módulo cubre los conceptos esenciales de Mockito: qué es el mocking, por qué es necesario en los tests unitarios, cómo crear mocks con la API estática y con anotaciones, y cómo configurar el comportamiento de los métodos simulados mediante stubbing con when y thenReturn.

  • Introducción a Mockito Lección
  • Anotaciones de Mockito y MockitoExtensión de JUnit 6 Lección
  • Creación de mocks Lección
  • Stubbing con when y thenReturn Lección
  • Mocks relajados, lenient y RETURNS_DEEP_STUBS Lección
  • Test de fundamentos de Mockito Test
  • Reto de stubbing con when/thenReturn Ejercicio

Modalidades de contratación

Elige la modalidad que mejor se adapte a tu organización. Sin permanencia ni coste de setup.

Teleformación

Acceso autónomo al itinerario en la plataforma: lecciones, vídeos, ejercicios evaluados por IA y proyecto integrador. Con tutorización y foro técnico.

Solicitar propuesta

Aula virtual privada

Sesiones en directo sobre cohorte cerrada del cliente. Práctica guiada, resolución de dudas, evaluación al cierre y evidencias exportables.

Solicitar propuesta

Plan mixto

Teleformación con sesiones en directo intercaladas. Equilibra autonomía del alumno con hitos guiados, revisión de proyectos y feedback síncrono.

Solicitar propuesta

Sobre Mockito

Szczepan Faber Desde 2008 Documentación oficial

Mockito moderno

La versión actual trae cambios importantes respecto a las ramas 2.x y 3.x:

Mock-maker inline por defecto: el inline-mock-maker ya no requiere configuración manual en src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker. Permite mockear clases final, métodos final y métodos estáticos sin añadir un fichero de recursos ni el artefacto mockito-inline. Es la opción predeterminada para proyectos nuevos.

Soporte completo de Java 21 y superiores: ciclo de integración continua con JDKs LTS, compatibilidad con registros (record), selladas (sealed) y clases ocultas generadas por el compilador. No hay advertencias de Byte Buddy en proyectos modernos bien configurados.

Mocking estable de métodos estáticos: Mockito.mockStatic(Clase.class) sustituye a la solución histórica de PowerMock para interceptar métodos estáticos. Se utiliza dentro de un bloque try-with-resources para limitar el scope al test y evitar fugas entre pruebas.

BDDMockito completo: el estilo given/willReturn/then.should es equivalente al clásico when/thenReturn/verify y está recomendado en proyectos que aplican BDD o que integran Mockito con Cucumber, Spring Cloud Contract o similares.

Anotación Captor mejorada: Captor resuelve los genéricos anidados correctamente (ArgumentCaptor<List<Pedido>>) sin warnings de tipos y se combina con Mock, Spy e InjectMocks en la misma clase de test.

Integración moderna con Spring Boot: la plataforma Spring Framework y Spring Boot introducen @MockitoBean y @MockitoSpyBean como sustitución directa de las anotaciones clásicas @MockBean y @SpyBean, con soporte de configuración por TestExecutionListener y recarga controlada del contexto.

PowerMock queda retirado del stack de referencia. Todos los escenarios que antes requerían PowerMockito (estáticos, constructores, clases final) se cubren con Mockito puro en la versión actual.

Tipos de dobles de prueba

Mockito soporta varios tipos de dobles de prueba con una API unificada:

  • Mock: objeto totalmente simulado que no ejecuta lógica real. Los métodos devuelven valores neutros por defecto (null, 0, false, colecciones vacías) salvo que se configure stubbing explícito.
  • Spy: envoltorio sobre una instancia real. Los métodos ejecutan la lógica original por defecto y se pueden sobrescribir selectivamente con doReturn/doThrow/doAnswer.
  • Captor: herramienta para capturar los argumentos con los que se invoca a un método del mock, habilitando aserciones detalladas después del acto.
  • MockedStatic: handle que intercepta los métodos estáticos de una clase dentro del scope de un try-with-resources y los restaura al cerrar.
flowchart LR
    A[Crear mock] --> B[Stubbing when/thenReturn]
    B --> C[Ejecutar código bajo prueba]
    C --> D[Verify invocaciones]
    D --> E[Capturar argumentos]
    E --> F[Asserts detallados]

El ciclo habitual de un test con Mockito es: crear el mock, configurar su comportamiento con stubbing, invocar al código bajo prueba, verificar las interacciones esperadas y, si hace falta, inspeccionar argumentos con un captor.

Mock vs spy vs mocking parcial

La diferencia entre mock, spy y mocking parcial es fundamental para decidir qué herramienta aplicar en cada test:

flowchart TD
    A[Qué necesito?] --> B{Ejecuto lógica real?}
    B -->|No, todo simulado| C[Mock puro con Mock]
    B -->|Si, lógica real + algun método fake| D[Spy sobre instancia real]
    D --> E[doReturn when sobre método concreto]
    B -->|Mockito crea mock y sobrescribo pocos métodos| F[Mocking parcial con Mock]
    F --> G[doCallRealMethod when sobre métodos concretos]

El mock puro se utiliza cuando la dependencia no debe ejecutar nada. El spy se usa cuando se quiere ejecutar la lógica real y solo sobrescribir métodos puntuales. El mocking parcial con doCallRealMethod es raro y suele indicar un diseño que conviene revisar.

MockitoExtensión e integración con JUnit 6

La forma recomendada de utilizar Mockito con JUnit Jupiter es mediante @ExtendWith(MockitoExtension.class). Esta extensión procesa las anotaciones @Mock, @Spy, @InjectMocks y @Captor antes de cada test y valida el uso estricto de stubs al finalizar.

flowchart LR
    A[JUnit 6 ciclo] --> B[MockitoExtensión beforeEach]
    B --> C[Inicializa campos Mock Spy Captor]
    C --> D[Crea objeto InjectMocks]
    D --> E[Ejecuta test]
    E --> F[afterEach valida stubbing]
    F --> G[Detecta stubs no usados en strict mode]

La extensión opera en modo STRICT_STUBS por defecto: detecta stubbings configurados pero nunca invocados y argumentos que no coinciden con los esperados, lo que ayuda a mantener tests precisos y sin basura.

InjectMocks: resolución por constructor y setter

@InjectMocks resuelve automáticamente las dependencias del sujeto bajo prueba a partir de los campos anotados con @Mock y @Spy. El orden de resolución es determinista:

flowchart TD
    A[InjectMocks sobre la clase bajo prueba] --> B[1. Intenta inyección por constructor]
    B --> C{Constructor con mas parámetros encaja?}
    C -->|Si| D[Crea instancia con los mocks]
    C -->|No| E[2. Inyección por setter]
    E --> F{Setters coinciden por tipo?}
    F -->|Si| G[Invoca setters con los mocks]
    F -->|No| H[3. Inyección por campo]
    H --> I[Asigna mocks por reflexion]

Si Mockito no encuentra un candidato para alguna dependencia, la deja como null. Por eso es importante declarar @Mock para todas las dependencias relevantes antes de anotar el sujeto con @InjectMocks.

Estilo BDDMockito

BDDMockito propone una sintaxis alineada con Behaviour-Driven Development, separando el test en tres secciones claras:

flowchart LR
    A[given stubbing] --> B[when acción]
    B --> C[then should verify]
    A -.->|BDDMockito.given willReturn| A
    C -.->|BDDMockito.then should| C

El esquema given/when/then es especialmente útil cuando el test forma parte de una especificación escrita por negocio, o cuando el equipo adopta una convención de nomenclatura común con los escenarios de BDD.

Spring Boot testing: capas y MockitoBean

La suite de testing de Spring Boot combina Mockito con slices de contexto para aislar capas de la aplicación sin instanciar todo el contenedor:

flowchart TD
    A[Test en Spring Boot] --> B{Qué quiero probar?}
    B -->|Solo lógica de servicio| C[MockitoExtensión + Mock + InjectMocks]
    B -->|Capa web REST| D[WebMvcTest + MockitoBean]
    B -->|Repositorio JPA| E[DataJpaTest sin mocks]
    B -->|Flujo completo| F[SpringBootTest + MockitoBean]
    D --> G[MockMvc como cliente HTTP simulado]
    F --> H[MockitoSpyBean para verificar colaboradores reales]

@MockitoBean reemplaza un bean del ApplicationContext por un mock de Mockito. @MockitoSpyBean envuelve el bean real como un spy. Ambas anotaciones sustituyen a las clásicas @MockBean y @SpyBean del paquete org.springframework.boot.test.mock.mockito.

Del mundo PowerMock al mockStatic moderno

Durante años, los tests que necesitaban mockear estáticos, constructores o métodos privados recurrían a PowerMock. Mockito moderno cubre la mayoría de esos escenarios sin librerías externas:

flowchart LR
    A[Escenario histórico] --> B{Qué necesito?}
    B -->|Método estático| C[Mockito.mockStatic en try-with-resources]
    B -->|Constructor| D[Mockito.mockConstruction en try-with-resources]
    B -->|Clase final o método final| E[Inline mock maker por defecto]
    B -->|Método privado| F[Refactorizar hacia package-private o colaborador]
    C -.->|Sustituye| G[PowerMockito.mockStatic]
    D -.->|Sustituye| H[whenNew de PowerMock]

PowerMock bloquea habitualmente la actualización del JDK y de JUnit. En proyectos modernos se retira en favor de Mockito puro.

Qué incluye este itinerario

  • Fundamentos: qué es el mocking, creación de mocks con mock() y @Mock, comportamiento por defecto y stubbing con when/thenReturn, thenThrow, thenAnswer y la sintaxis doReturn/when.
  • Verificación: uso de verify con modos (times, never, atLeast, atMost), argument matchers (any, eq, argThat), captura de argumentos con ArgumentCaptor, verificación de orden con InOrder y verificación con timeout/after.
  • Avanzado: spies y mocking parcial, @InjectMocks con resolución por constructor y setter, estilo BDDMockito, mocking de métodos estáticos con mockStatic, integración con Spring Boot (@MockitoBean, @MockitoSpyBean, @WebMvcTest).

Documentación oficial

La documentación oficial de Mockito está en https://site.mockito.org/ y la referencia completa de la API en https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html. La guía de testing de Spring Boot se encuentra en https://docs.spring.io/spring-boot/reference/testing/index.html.

¿Necesitas un itinerario completo?

Este curso puede formar parte de una carrera profesional que combine varias tecnologías. Explora nuestros itinerarios o te diseñamos uno a medida para tu equipo.

Plan formativo de Mockito para tu equipo

Recibe una propuesta concreta: modalidad, alcance, calendario y evidencias FUNDAE exportables. Damos de alta a tu equipo, configuramos la plataforma con tus dominios y entregamos certificados verificables e informes para tu entidad organizadora. Sin coste de setup, sin permanencia.

¿Prefieres verlo en directo? Agenda una demo sin compromiso.

Formación en Mockito: preguntas frecuentes

¿La formación en Mockito para empresas es bonificable por FUNDAE?
Puede ser bonificable cuando la acción cumple los requisitos aplicables. La plataforma aporta evidencias técnicas: seguimiento de tiempos, registro de conexiones, foros, encuestas y certificados para que tu entidad organizadora o gestoría revise la documentación.
¿En qué modalidades se imparte la formación en Mockito?
En tres modalidades: teleformación (online asíncrona), aula virtual privada en directo y mixta. Adaptamos temario, calendario y modalidad al equipo.
¿Se adapta el temario de Mockito al nivel de mi equipo?
Sí. Ajustamos el itinerario de Mockito al nivel y al stack de tu equipo, con ejercicios evaluados por IA y certificado verificable. La activación corporativa se acuerda durante la fase de propuesta.
¿Cómo se evalúa a los alumnos?
Con ejercicios corregidos automáticamente por IA (test, puzle, código, proyecto y ensayo), detección de entregas generadas con IA y certificados verificables por URL.