Archivo de la etiqueta: Moq.Net

Rompiendo los limites: Mocking en las Pruebas Unitarias .Net

Mocking

Hoy por fin os traigo la unión entre las Pruebas Unitarias y la Inyección de Dependencias, el “Mocking“. ¿Que es el “Mocking” te preguntarás?, pues es la técnica utilizada para simular objetos en memoria con la finalidad de poder ejecutar pruebas unitarias. Esto, es especialmente útil cuando utilizamos recursos externos como bases de datos o servicios de mensajería, o cualquier cosa en general que no queramos o no podemos ejecutar durante las pruebas unitarias. Sin mas preámbulos, ¡vamos con ello! En primer lugar, he reutilizado el proyecto Entity Framework Core “Code First” para partir de tener el contexto de datos creado. Ademas, he añadido una clase “GeneradorInformes” (la cual cumple el patrón de Inyección de Dependencias en el constructor) y una clase “EmailSender” que implementa la interfaz “IEmailSender”: Proyecto //IEmailSender.cs namespace PostMocking.Model { public interface IEmailSender { bool Enviar(string Destinatario, string Mensaje); } } //EmailSender.cs namespace PostMocking.Model { public class EmailSender : IEmailSender { public bool Enviar(string Destinatario, string Mensaje) { //{…} return true; } } } //GeneradorInformes.cs using Microsoft.EntityFrameworkCore; using PostMocking.Data; using System.Linq; using System.Text; namespace PostMocking.Model { public class GeneradorInformes { //Propiedad con la dependencia private IEmailSender emailSender { get; set; } private PostMockingDbContext context { get; set; } public… Leer más »