Я хочу протестировать следующую строку кода:
...
Bitmap uploadedPicture = Bitmap.FromStream(model.Picture.InputStream) as Bitmap;
...
Изображение является свойством в моей модели HttpPostedFileBase. Поэтому я хотел бы высмеять свойство HttpPostedFileBase для модульного тестирования:
model.Picture = new Mock<HttpPostedFileBase>().Object;
Нет проблем.
Теперь я должен издеваться над InputStream, иначе это будет null:
model.Picture.InputStream = new Mock<Stream>().Object;
Это не работает, поскольку InputStream доступен только для чтения (не имеет метода setter):
public virtual Stream InputStream { get; }
Есть ли хороший и чистый способ справиться с этой проблемой? Одним из решений было бы переопределить HttpPostedFileBase в производном классе для моего модульного теста. Любая другая идея?