Actualmente estoy leyendo un libro (Pro ASP.Net Framework).¿Por qué utilizar un marco de burla en lugar de rodar manualmente nuestros simulacros?
En este libro, el autor sugiere usar un Moq framework para ayudar a hacer TDD.
[Test]
public void List_Presents_Correct_Page_Of_Products()
{
IProductsRepository repository = MockProductsRepository(
new Product { Name = "P1" }, new Product { Name = "P2" },
new Product { Name = "P3" }, new Product { Name = "P4" },
new Product { Name = "P5" }
);
ProductsController controller = new ProductsController(repository);
...
}
static IProductsRepository MockProductsRepository(params Product[] prods)
{
// Generate an implementor of IProductsRepository at runtime using Moq
var mockProductsRepos = new Moq.Mock<IProductsRepository>();
mockProductsRepos.Setup(x => x.Products).Returns(prods.AsQueryable());
return mockProductsRepos.Object;
}
En la capa de modelo, definimos un FakeRepository y un SqlRepository.
El hecho es que no veo la ventaja de usar este marco moq. ¿Por qué no solo usamos nuestro FakeRepository? ¿O borrar nuestro FakeRepository y agregar producto falso en él?
Al principio, pensé que el marco moq estaba allí para generar datos falsos, por lo que no es necesario si tiene, por ejemplo, 100 objetos falsos para generar.
¿Qué extraño?
El repositorio de Mock también se puede usar para generar excepciones, en lugar de modificar el repositorio falso en la oscuridad. –