Je suis nouveau à moquer donc j'ai besoin d'un peu de conseils sur la façon de se moquer de HttpPostedFileBase avec Rhino Mocks. Je suis en train de vérifier que mon extension ToByteArray() fonctionne comme prévu, ce qui est ce que j'ai jusqu'à présent:Mocking HttpPostedFileBase avec Rhino Mocks
[Test]
public void Should_return_a_byte_array_with_a_length_of_eleven()
{
// Arrange
var stream = new MemoryStream(System.Text.Encoding.Default.GetBytes("TestContent"));
var httpPostedFileBase = MockRepository.GenerateMock<HttpPostedFileBase>();
httpPostedFileBase.Expect(x => x.InputStream).Return(stream);
httpPostedFileBase.Expect(x => x.ContentLength).Return(11);
// Act
var byteArray = httpPostedFileBase.ToByteArray();
// Assert
Assert.That(byteArray.Length, Is.EqualTo(11));
}
Je peux dire que les valeurs se préparent mais le temps que mon extensionmethod obtient le HttpPostedFileBase qu'il a perdu tout ce sont ses valeurs. Toute aide serait très appréciée.
/Kristoffer
Merci pour votre réponse! J'ai essayé mais je reçois toujours "Attendu: 11 Mais était: 0". J'ai mis Replay() avant que j'appelle ToByteArray() et VerifyAllExpectations() après ToByteArray(). J'ai déjà entendu votre argument à propos de la moquerie, mais je ne suis pas sûr de ne pas comprendre comment je pourrais vérifier cela d'une autre manière. Comment l'auriez-vous fait? –
J'ai reçu vos suggestions après avoir configuré Repeat.Any() sur mes attentes. Cependant, je suis toujours intéressé par la façon dont vous auriez pu le faire différemment! –
Si vous pouviez construire une instance réelle de HttpPostedFile (ou une dérivation de HttpPostedFileBase) avec du contenu de test, vous pouvez juste appeler la méthode d'extension sur cela. Mais je ne connais pas suffisamment la classe HttpPostedFile pour être sûr à 100% que c'est possible. – Rytmis