J'ai une vue & contrôleur qui permettent à l'utilisateur de télécharger un fichier sur le serveur. Ceci est fait dans la vue en utilisant un input type='file'
et dans le contrôleur en obtenant la valeur de Request.Files
(HttpRequestBase
, renvoyant un HttpFileCollectionWrapper
).Rhino Mocks: Mocking HttpRequestBase.Files
J'ai du mal à me moquer de cela en utilisant 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);
Le constructeur de HttpFileCollectionWrapper
nécessite une HttpFileCollection
, mais cela a un constructeur internal
. Est-ce que quelqu'un peut suggérer comment faire fonctionner cette approche, ou une variante de celle-ci?