Clase de repositorio de burla en Spring Boot
Quiero probar mi clase de capa de repositorio usando JUnit y Mockito. Como tengo muchas tablas de base de datos, no voy a utilizar una base de datos en memoria para simular mi base de datos. Necesito probar el siguiente método que utiliza la clase JdbcTemplate
para obtener datos de la base de datos.
public List <EmployeeSqlDTO> findEmployees(String sqlQuery) {
List <EmployeeSqlDTO> list = new ArrayList <> ();
EmployeeSqlDTO sqlDTO;
SqlRowSet rowSet = jdbcTemplate.queryForRowSet(sqlQuery, 1, 1);
while (rowSet.next()) {
sqlDTO = new EmployeeSqlDTO();
sqlDTO.setId(rowSet.getInt("id"));
sqlDTO.setName(rowSet.getString("name"));
sqlDTO.setEmail(rowSet.getString("email"));
list.add(sqlDTO);
}
return list;
}
La clase EmployeeSqlDTO
contiene tres variables de instancia (id
, name
, email
) con getters y setters.
Necesito probar el método anterior usando Mockito y JUnit. ¿Existe una manera adecuada de probar el código anterior?
davy.ai
Sí, es posible probar el código anterior usando Mockito y JUnit.
Aquí hay un código de prueba de muestra para el método
findEmployees
:En este código, estamos simulando los objetos
JdbcTemplate
ySqlRowSet
usando anotaciones Mockito. Luego, estamos configurando el comportamiento esperado de estos objetos cuando se llaman los métodosqueryForRowSet
ynext
. Finalmente, estamos comparando las listas esperada y real que se generan a partir del métodofindEmployees
.Tenga en cuenta que estamos pasando la consulta y los argumentos como parámetros separados al método
findEmployees
. Esto nos permite pasar diferentes consultas y argumentos para diferentes casos de prueba, haciendo que las pruebas sean más completas.