- Practicar las pruebas unitarias, para buscar un partido por su nombre en la tabla de Equipos.
- Apache Maven 3.8.4 o superior
- JDK (o OpenJDK)
- Proyecto con pruebas unitarias (Proyecto del ejemplo 02)
-
Crea el archivo de prueba tal como hiciste en el Ejemplo 3. En este caso tendrás que agregar ambos repositorios para poder hacer el setup completo.
-
Deberás agregar el repositorio de partidos a la prueba de equipos, ya que no podemos garantizar el orden en que se ejecutan las pruebas y por las restricciones de llave foránea podríamos tener problemas al reiniciar la tabla.
- Este tipo de comportamiento de uso común es un excelente candidato para crear una clase de soporte.
Solución
-
Importa PartidoRepository en EquipoRepositoryTest
@Autowired private PartidoRepository partidoRepository;
-
Limpia los datos del partidoRepository desde el método cleanDatabase. Nota: Recuerda primero eliminar partidoRepository y después repository.
partidoRepository.deleteAll();
-
Crea el archivo PartidoRepositoryTest, importa los Equipos y ejecuta el setupDatabase.
@Autowired private PartidoRepository repository; @Autowired private EquipoRepository equipoRepository; Equipo equipo1; Equipo equipo2; @BeforeAll void setupDatabase() { repository.deleteAll(); equipoRepository.deleteAll(); equipo1 = new Equipo(); equipo1.setNombre("Equipo X"); equipoRepository.save(equipo1); equipo2 = new Equipo(); equipo2.setNombre("Equipo Y"); equipoRepository.save(equipo2); }
-
Crea el QueryMethod:
Iterable<Partido> findAllByEquipo1NombreAndEquipo2Nombre(String nombreEquipo1, String nombreEquipo2);
-
Agrega el método para busca por nombres, dentro de PartidoRepositoryTest.
@Test @DisplayName("Busca por nombres") void searchMatchByNames() { Partido partido = new Partido(); partido.setEquipo1(equipo1); partido.setEquipo2(equipo2); partido.setMarcadorEquipo1(0); partido.setMarcadorEquipo2(0); repository.save(partido); Iterable<Partido> conjuntoPartidos = repository.findAllByEquipo1NombreAndEquipo2Nombre("Equipo X", "Equipo Y"); }
-
Ejecuta el comando mvn test, comprueba que los test se ejecutan correctamente.
-
Consulta los registros de las tablas .
Siguiente (Postwork)