Sử dụng MVC3.NET Tôi có phương pháp tải lên tệp trong bộ điều khiển hoạt động tốt với chữ ký sau public ActionResult UploadFile(IEnumerable<HttpPostedFileBase> file)
Đơn vị Kiểm tra tệp tải lên, làm cách nào?
Tôi có thể kiểm tra điều này bằng NUnit bằng cách nào? Tôi đã nhìn xung quanh và tất cả mọi người dường như chỉ đến Moq nhưng tôi mới để thử nghiệm đơn vị và không thể có được Moq làm việc.
Tôi đã tìm thấy các blog thú vị như thế này: http://danielglyde.blogspot.com/2011/07/tdd-with-aspnet-mvc-3-moq-and.html nhưng tôi đang cố gắng tìm ra cách thức tương tự có thể được thực hiện để 'giả mạo' tải lên tệp và tôi cũng cảnh giác rằng rất nhiều ví dụ moq mà tôi đã tìm thấy bây giờ dường như đã không dùng mã trong đó. Tôi chỉ đơn giản muốn biết làm thế nào tôi có thể mô phỏng một HttpPostedFileBase vì vậy tôi có thể kiểm tra mã tải lên của tôi, bằng cách sử dụng Moq hoặc cách khác - Tôi sẽ thực sự biết ơn nếu ai đó có thể cho tôi một số ví dụ mã về cách thực hiện điều này.
Các mã sau đây được lấy từ ví dụ khác về ở đây:
var file = new Mock<HttpPostedFileBase>();
file.Setup(f => f.ContentLength).Returns(1);
file.Setup(f => f.FileName).Returns("test.txt");
controller.upload(file);
tạo ra lỗi sau khi tôi cố gắng biên dịch:
không thể chuyển đổi từ 'Moq.Mock' để 'System. Web.HttpPostedFileBase '
Tôi đã thay đổi phương pháp để có một HttpPostedFileBase đơn lẻ bây giờ, thay vì một IEnumerable , khi có thể 'giả' là điều tôi đang cố gắng tập trung vào cho mục đích của câu hỏi này.
Xem câu hỏi http://stackoverflow.com/questions/5515404/how-to-unit-test-asp-net-mvc-fileupload – wnascimento
Tôi muốn có thể chuyển đối tượng vào phương thức từ phương pháp thử nghiệm sẽ cho phép tôi kiểm tra mã bên trong nó, vì vậy tôi muốn thực hiện điều này từ một phương thức kiểm tra: controller.UploadFile (fakeObjectHereButDontKnowHow). Ví dụ Chris Sainty chứa rất nhiều mã lỗi thời, tôi nghĩ vậy. Như tôi đã nói, tôi đã vật lộn với một số tài liệu trực tuyến cho moq .. – DevDave