2.2 KiB
2.2 KiB
Diseño pruebas: JUnit
Buenas prácticas al diseñar pruebas básicas
- Un test → una validación: Cada método @Test valida un solo comportamiento o escenario.
- Nombres descriptivos: Ayudan a saber qué falla si un test no pasa.
- Casos extremos primero: Null, vacío, límites de valores.
- Happy Path: Siempre incluye un caso que debería funcionar correctamente.
- Transformaciones y reglas de negocio: Verifica la lógica de tu código, no solo la sintaxis.
| Tipo de prueba | Qué valida | Ejemplo |
|---|---|---|
| Null | Manejo de objetos nulos | casa = null |
| Empty | Datos vacíos | nombre="" |
| Happy Path | Caso correcto | "Mi casa" |
| Transformación | Resultado transformado | "mi casa" → "MI CASA" |
| Regla de negocio | Validación lógica | esCasaValida() |
Ejemplo de caso Clase JUnit para realizar la pruebas básicas:
class CasaServiceTest {
@Test
void tieneNombre_conCasaNull_devuelveFalse() {
CasaService service = new CasaService();
boolean resultado = service.tieneNombre(null);
assertFalse(resultado);
}
@Test
void tieneNombre_conNombreVacio_devuelveFalse() {
CasaService service = new CasaService();
Casa casa = new Casa(1, "");
boolean resultado = service.tieneNombre(casa);
assertFalse(resultado);
}
@Test
void tieneNombre_conNombreValido_devuelveTrue() {
CasaService service = new CasaService();
Casa casa = new Casa(1, "Mi casa");
boolean resultado = service.tieneNombre(casa);
assertTrue(resultado);
}
@Test
void obtenerNombreEnMayusculas_devuelveNombreEnMayusculas() {
CasaService service = new CasaService();
Casa casa = new Casa(1, "mi casa");
String resultado = service.obtenerNnombreEnMayusculas(casa);
assertEquals("MI CASA", resultado);
}
@Test
void esCasaValida_conDatosCorrectos_devuelveTrue() {
CasaService service = new CasaService();
Casa casa = new Casa(1, "Casa bonita");
boolean resultado = service.esCasaValida(casa);
assertTrue(resultado);
}
