Tôi muốn thử nghiệm các dòng mã sau đây:Mocking HttpPostedFileBase và InputStream cho đơn vị kiểm tra
...
Bitmap uploadedPicture = Bitmap.FromStream(model.Picture.InputStream) as Bitmap;
...
Ảnh là một tài sản trong loại mô hình của tôi HttpPostedFileBase. Vì vậy, tôi muốn giả lập thuộc tính HttpPostedFileBase để kiểm tra đơn vị:
model.Picture = new Mock<HttpPostedFileBase>().Object;
Không sao cả.
Bây giờ tôi phải thử InputStream, nếu không nó là null:
model.Picture.InputStream = new Mock<Stream>().Object;
này không hoạt động như InputStream là read-only (có không phải là một phương pháp setter):
public virtual Stream InputStream { get; }
Có cách nào tốt và sạch sẽ để xử lý vấn đề này không? Một giải pháp sẽ là ghi đè lên HttpPostedFileBase trong một lớp dẫn xuất cho phép thử đơn vị của tôi. Bất kỳ ý tưởng nào khác?
Tôi đã làm nó khá giống nên tôi đánh dấu câu trả lời của bạn là chính xác. – mosquito87