Automocking con Moq
Una de las novedades de la versión 2.6 de nuestro framework de mocking preferido Moq es al automocking que no es otra cosa más que un mockign jerárquico, es decir si "mockeamos" un objeto (interface o lo que sea) y este tiene dentro otros objetos también se hace mocking de estos y podemos configurar un resultado o comportamiento de cualquiera de ellos, lo cual es muy práctico, veamos cómo funciona.
public interface IPersona { string Nombre { get; set; } //La propiedad Direccion es otro objeto IDireccion Direccion { get; set; } } public interface IDireccion { string Calle { get; set; } int Altura { get; set; } } [TestMethod] public void AutoMocking() { var mock = new Mock<IPersona>(); //automáticamente se crea un mock object para la propiedad Dirección de modo lazy mock.Expect(persona => persona.Direccion.Calle).Returns("Cucha Cucha"); Assert.AreEqual<string>("Cucha Cucha", mock.Object.Direccion.Calle); }
No nos asustemos pensado que esto va a hacer que el automocking tome 40 segundos en crear un objeto hasta que resuelve todos los objetos que tiene dentro, la creación de los automocking es del tipo lazy, es decir, se crea sobre demanda, mágico. Saludos.
No hay comentarios:
Publicar un comentario