我想测试以下代码行:
...
Bitmap uploadedPicture = Bitmap.FromStream(model.Picture.InputStream) as Bitmap;
...
图片是我的模型类型 HttpPostedFileBase 中的一个属性。所以我想模拟一个用于单元测试的 HttpPostedFileBase 属性:
model.Picture = new Mock<HttpPostedFileBase>().Object;
完全没有问题。
现在我必须模拟 InputStream,否则它为空:
model.Picture.InputStream = new Mock<Stream>().Object;
这不起作用,因为 InputStream 是只读的(没有 setter 方法):
public virtual Stream InputStream { get; }
有没有一个好的和干净的方法来处理这个问题?一种解决方案是在派生类中为我的单元测试覆盖 HttpPostedFileBase。还有什么想法吗?