我有一个视图和控制器,允许用户将文件上传到服务器。在视图中使用input type='file'
,在控制器中通过获取Request.Files
的值(HttpRequestBase
,返回HttpFileCollectionWrapper
)来完成上传。
我现在在使用Rhino Mocks进行模拟时遇到了困难。
HttpContextBase mockHttpContext = MockRepository.GenerateMock<HttpContextBase>();
HttpRequestBase mockRequest = MockRepository.GenerateMock<HttpRequestBase>();
mockHttpContext.Stub(x => x.Request).Return(mockRequest);
mockRequest.Stub(x => x.HttpMethod).Return("GET");
// Next line fails - throws MissingMethodException
// (Can't find a constructor with matching arguments)
HttpFileCollectionWrapper files =
MockRepository.GenerateMock<HttpFileCollectionWrapper>();
files.Stub(x => x.Count).Return(1);
mockRequest.Stub(x => x.Files).Return(files);
HttpFileCollectionWrapper
的构造函数需要一个 HttpFileCollection
,但是它的构造函数是 internal
的。有人能建议如何让这个方法或其变体工作吗?