Comment pourrais-je me moquer d'une image avec Moq?Mocking System.Drawing.Image avec Moq
Il n'a aucun constructeur (est toujours généré à partir des méthodes d'usine).
Fondamentalement, je veux faire quelque chose comme ça ...
var image = new Mock<Image>();
image.Setup(i=>i.Save(someStream,ImageFormat.Jpeg);
var testableObject = new ObjectUnderTest(image.Object);
testableObject.MethodBeingTested();
image.VerifyAll();
Merci pour cela, votre réponse originale a été très utile. Cela semble un peu sale de créer une interface et un décorateur juste pour pouvoir le tester (surtout pour une classe de framework). Test de la sortie serait désordonné dans mon cas, car il serait la validation du contenu d'un flux ont les bons au revoir (fastidieux) –
Je pense qu'une question importante à poser lors du test est "Qu'est-ce que je suis exactement tester?". Sans en savoir plus sur votre problème, je risque de deviner que vous testez une sorte de manipulation d'image. Strictement parlant, cette manipulation doit être testée indépendamment de l'image, par exemple un test de flux d'octets ou autre chose. Le test d'une classe "System" est généralement considéré comme trop exigeant - un peu comme tester WebServices, et j'en ai vu beaucoup aussi. On peut supposer que CLR est "sûr". Vous voulez séparer la logique métier [c.-à-d. Tout ce qui arrive à votre image] de la classe System [ie Image]. –
http://haacked.com/archive/2007/08/19/why-duck-typing-matters-to-c-developers.aspx –