No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Dobles de prueba (pruebas de integraci贸n)

23/24
Recursos

Aportes 5

Preguntas 1

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Los dobles de prueba (pruebas de integraci贸n) son una t茅cnica utilizada en las Arquitecturas Limpias para el desarrollo de software. Estas pruebas se enfocan en validar la interacci贸n y la integraci贸n correcta entre los diferentes componentes del sistema. Aqu铆 tienes un ejemplo de c贸mo se podr铆an implementar los dobles de prueba en el contexto de las Arquitecturas Limpias:

Supongamos que tenemos una aplicaci贸n que sigue la arquitectura limpia y consta de las siguientes capas: la capa de dominio, la capa de aplicaci贸n y la capa de infraestructura.

En la capa de dominio, tenemos una clase llamada UserService que es responsable de la l贸gica relacionada con los usuarios. Esta clase depende de un repositorio para acceder a los datos de los usuarios.

En lugar de utilizar directamente el repositorio real en las pruebas de integraci贸n, podemos crear un doble de prueba (mock) del repositorio. Este doble de prueba simula el comportamiento del repositorio real, pero en lugar de acceder a una base de datos, puede devolver datos de prueba predefinidos.

Aqu铆 hay un ejemplo de c贸mo se podr铆a implementar el doble de prueba del repositorio en Java utilizando un framework de pruebas como Mockito:

import org.example.domain.User;
import org.example.domain.UserRepository;

import java.util.ArrayList;
import java.util.List;

public class UserRepositoryMock implements UserRepository {
    private List<User> users = new ArrayList<>();

    @Override
    public void save(User user) {
        users.add(user);
    }

    @Override
    public User findById(int id) {
        return users.stream()
                .filter(user -> user.getId() == id)
                .findFirst()
                .orElse(null);
    }

    // Otros m茅todos del repositorio simulados...
}

En este ejemplo, UserRepositoryMock implementa la interfaz UserRepository y proporciona implementaciones simuladas de los m茅todos del repositorio, como save() y findById(). En lugar de interactuar con una base de datos real, simplemente almacena los usuarios en una lista en memoria.

Al utilizar este doble de prueba del repositorio en las pruebas de integraci贸n, podemos controlar el comportamiento de los m茅todos del repositorio y asegurarnos de que la capa de dominio funcione correctamente sin depender de la infraestructura real de acceso a datos.

Es importante destacar que los dobles de prueba se utilizan en pruebas de integraci贸n para simular componentes externos y garantizar que las diferentes capas del sistema interact煤en correctamente entre s铆. Estas pruebas ayudan a identificar problemas de comunicaci贸n, validaci贸n de datos y comportamiento incorrecto en la integraci贸n de componentes.

En resumen, los dobles de prueba (pruebas de integraci贸n) en las Arquitecturas Limpias permiten simular componentes externos, como repositorios, para probar la interacci贸n y la integraci贸n correcta entre las diferentes capas del sistema sin depender de la implementaci贸n real de los componentes externos. Esto mejora la modularidad y facilita la identificaci贸n de posibles problemas de integraci贸n.

Pruebas de integraci贸n

Son pruebas que se pueden aplicar sobre la capa de aplicaci贸n donde se tienen en cuenta los siguientes componentes:

  1. Sistema bajo prueba (SBP), por ejemplo el dominio.
  2. Componente del que se depende (CDD), por ejemplo la base de datos y sistemas de terceros.

Problemas con el CDD

  • Acceso lento.
  • Control del resultado.
  • Efectos colaterales.
  • Disponibilidad en ambiente.
  • Acceso costoso.

Doble de prueba

Es un objeto que se instala en lugar del objeto real con la intenci贸n de ejecutar la prueba, por ejemplo mocks y stubs.

Al profe se le ilumina el rostro cuando habla del efecto colateral ej. envio de correo masivo jeje, les comparto con correos hemos incluido en el subject el ambiente para identificar si es una prueba jaja lo aprendimos alarmando al mundo tambien.