I want to test the following line of code:
...
Bitmap uploadedPicture = Bitmap.FromStream(model.Picture.InputStream) as Bitmap;
...
Picture is a property in my model type HttpPostedFileBase.
So I would like to mock a HttpPostedFileBase property for unit-testing:
model.Picture = new Mock<HttpPostedFileBase>().Object;
No problem at all.
Now I have to mock the InputStream, otherwise it's null:
model.Picture.InputStream = new Mock<Stream>().Object;
This isn't working as the InputStream is read-only (hasn't a setter method):
public virtual Stream InputStream { get; }
Is there a good and clean way to handle this problem?
One solution would be to override HttpPostedFileBase in a derived class for my unit-test.
Any other idea?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…