我试图让我的控制器单元测试返回一个模拟文件时Request.Files[0]
被称为MVC犀牛嘲笑为Request.Files
从这个网站其他职位我已经把:
[TestMethod]
public void CreateFileInDatabase()
{
var repository = new MocRepository();
var controller = GetController(repository);
HttpContextBase mockHttpContext = MockRepository.GenerateMock<HttpContextBase>();
HttpRequestBase mockRequest = MockRepository.GenerateMock<HttpRequestBase>();
mockHttpContext.Stub(x => x.Request).Return(mockRequest);
mockRequest.Stub(x => x.HttpMethod).Return("GET");
var filesMock = MockRepository.GenerateMock<HttpFileCollectionBase>();
var fileMock = MockRepository.GenerateMock<HttpPostedFileBase>();
filesMock.Stub(x => x.Count).Return(1);
mockRequest.Stub(x => x.Files).Return(filesMock);
var t = mockHttpContext.Request;
var automobile = new Automobile{ automobileNumber = "1234" };
controller.ControllerContext = new ControllerContext(mockHttpContext, new RouteData(), controller);
controller.Create(automobile);
}
当我在测试期间在控制器中,并呼吁Request.Files
我得到filesMock伟大。
但是我希望能够拨打Request.Files[0]
并获得一个模拟文件,我可以将其作为参数传递给方法。
我没有做过太多的嘲笑之前,所以任何帮助将不胜感激!
非常感谢堆! – AnonyMouse