voglio testare la seguente riga di codice:derisione HttpPostedFileBase e InputStream per l'unità-test
...
Bitmap uploadedPicture = Bitmap.FromStream(model.Picture.InputStream) as Bitmap;
...
Picture è una struttura nel mio tipo di modello HttpPostedFileBase. quindi vorrei prendere in giro una proprietà HttpPostedFileBase per l'unità-test:
model.Picture = new Mock<HttpPostedFileBase>().Object;
Nessun problema a tutti.
Ora devo prendere in giro l'InputStream, altrimenti è nullo:
model.Picture.InputStream = new Mock<Stream>().Object;
Questo non funziona come l'InputStream è di sola lettura (non ha un metodo setter):
public virtual Stream InputStream { get; }
C'è un modo buono e pulito per gestire questo problema? Una soluzione sarebbe quella di sovrascrivere HttpPostedFileBase in una classe derivata per il mio unit test. Qualche altra idea?
L'ho fatto in modo abbastanza simile, quindi contrassegno la risposta come corretta. – mosquito87