Usando MVC3.NET Tengo un método de carga de archivos en un controlador que funciona bien con la siguiente firma public ActionResult UploadFile(IEnumerable<HttpPostedFileBase> file)
Unidad Prueba una carga de archivo, ¿cómo?
¿Cómo puedo unidad de prueba esto con NUnit? He mirado alrededor y todos parecen apuntar a Moq pero soy nuevo en las pruebas unitarias y no puedo hacer que Moq funcione.
He encontrado blogs interesantes como este: http://danielglyde.blogspot.com/2011/07/tdd-with-aspnet-mvc-3-moq-and.html pero estoy luchando para descubrir cómo se podría hacer lo mismo para 'falsificar' una carga de archivos, y también tengo mucho cuidado con ejemplos de moq que he logrado encontrar ahora parecen tener código obsoleto en ellos.
Simplemente me gustaría saber cómo puedo simular un HttpPostedFileBase para poder probar mi código de carga, usando Moq o de otra manera. Estaría muy agradecido si alguien pudiera darme algunos ejemplos de código sobre cómo hacer esto.
El siguiente código tomado de otros ejemplos aquí:
var file = new Mock<HttpPostedFileBase>();
file.Setup(f => f.ContentLength).Returns(1);
file.Setup(f => f.FileName).Returns("test.txt");
controller.upload(file);
genera el siguiente error cuando intento compilar:
no se puede convertir de 'Moq.Mock' a 'del sistema. Web.HttpPostedFileBase '
He cambiado el método para tomar un HttpPostedFileBase singular por el momento, en lugar de un IEnumerable , como poder 'burlarse' de uno es en lo que estoy tratando de enfocarme con el propósito de esta pregunta.
Véase la pregunta http://stackoverflow.com/questions/5515404/how-to-unit-test-asp-net-mvc-fileupload – wnascimento
Quiero ser capaz de pasar un objeto en el método de mi método de prueba que me permitirá probar el código dentro de él, así que quiero hacer esto desde un método de prueba: controller.UploadFile (fakeObjectHereButDontKnowHow). El ejemplo de Chris Sainty contiene un montón de código obsoleto, creo. Como dije, he tenido problemas con parte del material en línea para moq ... – DevDave