Skip to content

uqbar-project/eg-politics-springboot-kotlin

Repository files navigation

Spring Boot - Politics - Mapeo OR/M

build codecov

Prerrequisitos

Solo hace falta tener instalado Docker Desktop (el pack docker engine y docker compose), seguí las instrucciones de esta página en el párrafo Docker.

docker compose up

Eso levanta tanto PostgreSQL como el cliente pgAdmin, como está explicado en este ejemplo.

La conexión a la base se configura en el archivo application.yml:

  datasource:
    url: jdbc:postgresql://0.0.0.0:5432/politics
    username: postgres
    password: postgres
    driver-class-name: org.postgresql.Driver
  • 0.0.0.0 apunta a nuestro contenedor de Docker
  • el usuario y contraseña está definido en el archivo docker-compose.yml

Material relacionado

Testeo de integración

Podés ver la implementación de varios casos de prueba:

  • para el controller de zonas
    • al traer todas las zonas no trae las personas candidatas
    • al traer una zona trae todas las personas candidatas (para este caso de prueba necesitamos convertir el JSON a una clase DTO especial para el test, ya que la serialización se hace con una clase ZonaParaGrillaSerializer en lugar de manejar el mapeo con anotaciones de Jackson o un DTO, quizás una razón más para utilizar como técnica el DTO)
    • si buscamos una zona inexistente debe devolver código de http 404
  • para el controller de candidates
    • si actualizamos un candidate mediante un PUT eso se refleja en la base de datos. Dado que tiene efecto colateral debemos utilizar la anotación @Transactional para este test. Si bien utilizamos una base de datos in-memory y podríamos pensar "los cambios realmente no persisten", sí lo hacen en el contexto de los tests. Es decir, si repetimos el mismo test sin revertir el cambio, el primer test pasará correctamente y el segundo fallará cuando espere que nuestro candidate tenga 0 votos.

Cómo testear la app

Podés descargarte la colección de endpoints en formato json para luego importarlo en alguno de estos clientes

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •