Mocking HttpPostedFileBase-und InputStream für unit-test

Möchte ich testen, die folgende Zeile des Codes:

...
Bitmap uploadedPicture = Bitmap.FromStream(model.Picture.InputStream) as Bitmap;
...

Bild ist eine Eigenschaft, die in meinem Modell Typ HttpPostedFileBase.
Also ich würde gerne zu verspotten, ein HttpPostedFileBase-Eigenschaft für unit-Tests:

model.Picture = new Mock<HttpPostedFileBase>().Object;

Überhaupt kein problem.

Nun habe ich zum simulieren der InputStream, sonst ist es null:

model.Picture.InputStream = new Mock<Stream>().Object;

Funktioniert das nicht, da der InputStream read-only ist (hat nicht eine setter-Methode):

public virtual Stream InputStream { get; }

Ist es eine gute und saubere Möglichkeit, dieses problem zu behandeln?
Eine Lösung wäre zum überschreiben HttpPostedFileBase in einer abgeleiteten Klasse für meine unit-test.
Jede andere Idee?

InformationsquelleAutor mosquito87 | 2013-03-25

Schreibe einen Kommentar