- Mock -

Doble de prueba usado para simular una dependencia externa que recibe información enviada por la unidad de código.
Permite validar esta información.
Solo puede existir máximo UN MOCK en una prueba, ya que simula un punto de salida y solo se valida uno por prueba unitaria.
/** Interfaz que define una dependencia externa */
interface IRegistrador {
registrarInfo(info: string);
}
/** Implementación real de la interfaz IRegistrador */
class RegistradorReal implements IRegistrador {
public registrarInfo(info: string) {
console.log(info);
}
}
/** Implementacióon Mock para verificar que
* Calculadora.add está registrando correctamente */
class RegistradorMock implements IRegistrador {
/** Campo privado para guardar la última información registrada */
private informacionRecibidaParaRegistrar: string;
/** Método definido por la interfaz IRegistrador*/
public registrarInfo(info: string) {
/** Asigna la info recibida a
* this.informacionRecibidaParaRegistrar para que podamos
* verificar más tarde que Calculadora.sumar envióla info correcta
*/
this.informacionRecibidaParaRegistrar = info;
}
/** Permite el acceso para validar la última información recibida */
public get informacionRecibida(): string {
return this.informacionRecibidaParaRegistrar;
}
}
class Calculadora {
/** Constructor que recibe la implementación de IRegistrador */
constructor(private registrador: IRegistrador) {}
public sumar(sumando: number, otroSumando: number): number {
/** Usa la implementación de IRegistrador recibida para registrar
* la información relacionada a la suma*/
this.registrador.registrarInfo(`Sumará ${sumando} y ${otroSumando}`);
return sumando + otroSumando;
}
}
/** Inicio de la prueba */
/** Inicializa un objeto RegistradorMock para validar que
* Calculadora está registrando los datos correctamente
*/
const registradorMock: RegistradorMock = new RegistradorMock();
/** Envía el objeto RegistradorMock a Calculadora a través del constructor*/
const calculadora: Calculadora = new Calculadora(registradorMock);
/** Llamado al método sumar para validar que está registrando
* correctamente la información */
calculadora.sumar(4, 5);
/** Valida que la información registrada es la que se espera */
registradorMock.informacionRecibida === "Sumará 4 y 5";
/** Fin de la prueba */






