Simulacro de System.Drawing.Image con Moq
-
05-07-2019 - |
Pregunta
¿Cómo me burlaría de una imagen con Moq?
No tiene constructores (siempre se genera a partir de métodos de fábrica).
Básicamente quiero hacer algo como esto ...
var image = new Mock<Image>();
image.Setup(i=>i.Save(someStream,ImageFormat.Jpeg);
var testableObject = new ObjectUnderTest(image.Object);
testableObject.MethodBeingTested();
image.VerifyAll();
Solución
Respondió una pregunta similar ayer, es posible que desee echar un vistazo a este hilo al simular un Singleton estático .
Si es absolutamente necesario simular este comportamiento, entonces el método proscrito es generar una interfaz que exponga los métodos que necesita, implementarlo con una clase concreta [envolver efectivamente la clase de imagen] para prod, y simular la interfaz para la prueba.
Suena excesivo, pero si necesitas Simular \ verificar las interacciones entre tu clase comprobable e Imagen, esa es la manera de hacerlo. Alternativamente, puede pasar a su clase comprobable una instancia real de la imagen y luego comparar esta instancia con una salida esperada [metodología de prueba de unidad estándar]