Café y Código

8. Interfaces: El Test del Contrato

Validando la Firma, no la Forma

En Java, una Interfaz es un contrato. Si tenemos la interfaz Volable con el método volar(), a nuestros tests no les importa si probamos un Avion o un Dragon; lo único que importa es que ante el llamado de volar, ambos despeguen igual.

Validando múltiples implementaciones
JAVA
1 @Test
2 void testConexiones() {
3 IConexion cWiFi = new WiFi();
4 IConexion cCable = new Ethernet();
5
6 // Ambos deben cumplir el contrato
7 assertTrue(cWiFi.conectar());
8 assertTrue(cCable.conectar());
9 }

👨‍💻 Ejercicio Práctico 1

Misión: El motor imparable

Si IMotor tiene un método void encender(), crea el test para Diesel d = new Diesel() y verifica que tras llamarlo, d.estaEncendido() sea verdadero.

👁️ Ver solución propuesta
JAVA
1 @Test
2 void testMotor() {
3 IMotor d = new Diesel();
4 d.encender();
5 assertTrue(d.estaEncendido());
6 }

👨‍💻 Ejercicio Práctico 2

Misión: El contrato de Texto

Usa assertEquals para ver si un objeto JSONData d = new JSONData() que implementa IDocumento, nos devuelve "" al llamar a d.toString().

👁️ Ver solución propuesta
JAVA
1 @Test
2 void testJSON() {
3 IDocumento d = new JSONData();
4 assertEquals("{}", d.toString());
5 }

Ponte a prueba

¿Tus clases cumplen con lo prometido?

Ko-fi
Donaciones
Apoyá cafeycodigo con un café en Ko-fi. Colaboradores: insignia, muro y zona exclusiva.