Estoy construyendo una API REST usando ASP.NET MVC 3. Lo estoy haciendo al estilo BDD usando SpecFlow con NUnit como corredor de prueba.Mocking de proceso cruzado en ASP.NET
Dado que es una API REST, la prueba de las Url: s es, obviamente, muy importante, así que quiero poder realizar llamadas HTTP reales en las especificaciones.
Ahora estoy buscando consejos sobre cómo ir Cross Process Mocking. En resumen, quiero burlarme de la capa de datos con las entidades que genero en las Especificaciones.
En una aplicación de Rails, utilizaría Webrat para esto. ¿Hay algo equivalente a eso en .NET todavía?
Ya he intentado Deleporter pero no parece ser capaz de "enviar" construcciones avanzadas (Crear una cadena simple en las especificaciones y usarla en Deleporter funciona, pero no para una clase personalizada las propiedades todo se vuelve nulo)
¿Alguien tiene experiencias o consejos sobre cómo hacer esto?
Editar: lo que estaba intentando hacer en el Deleporter era algo como esto (soy consciente de que yo pudiera generar los modelos dentro del código Deleporter pero esto es un ejemplo simplificado, por lo que no iba a funcionar para mí):
var models = Builder<Foo>.CreateListOfSize(300);
Deleporter.Run(() =>
{
var mockService = new Mock<IFooService>();
// Models will be a list of 300 Foos but the foos properties will all be null
mockService.Setup(s => s.GetStuff()).Returns(models);
ObjectFactory.Inject(mockService.Object);
});
Esto suena como algo que debe evitarse. ¿Puedes dar más detalles sobre por qué quieres hacerlo? – JontyMC
Creo que el autor de Deleporter explica por qué querría hacer esto bastante bien en su publicación de blog; http://blog.stevensanderson.com/2010/03/09/deleporter-cross-process-code-injection-for-aspnet/ Cambie la configuración de las aplicaciones a Test para ver un ejemplo ... Quería probar toda mi aplicación en mis especificaciones, no solo los controladores ... – ullmark
Quería probar mi aplicación desde el exterior. Como es una API de reposo, lo primero que hay que probar son las llamadas HTTP ... – ullmark