unit-testing Usando un marco de burla como un trozo


Ejemplo

Los términos Mock y Stub a menudo pueden confundirse. Parte de la razón de esto es que muchos marcos de simulacros también brindan soporte para crear Stubs sin el paso de verificación asociado con Mocking.

En lugar de escribir una nueva clase para implementar un código auxiliar como en el ejemplo "Usar un código auxiliar para proporcionar respuestas enlatadas", se pueden usar marcos burlones.

Utilizando Moq:

var stub = new Mock<IRecordProvider>();
stub.Setup(provider => provider.GetRecords()).Returns(new List<Record> {
    new Record { Id = 1, Flag=false, Value="First" },
    new Record { Id = 2, Flag=true, Value="Second" },
    new Record { Id = 3, Flag=false, Value="Third" }
});

Esto logra el mismo comportamiento que el código codificado a mano, y se puede suministrar al sistema bajo prueba de una manera similar:

var processed = sut.ProcessRecord(stub.Object);