1
我該如何去嘲諷Moq的圖像?用Moq嘲笑System.Drawing.Image
它沒有構造函數(始終由工廠方法生成)。
基本上我想要做這樣的事情...
var image = new Mock<Image>();
image.Setup(i=>i.Save(someStream,ImageFormat.Jpeg);
var testableObject = new ObjectUnderTest(image.Object);
testableObject.MethodBeingTested();
image.VerifyAll();
感謝您的支持,您的原始答案非常有幫助。創建接口和裝飾器看起來有點骯髒,所以你可以測試它(特別是對於框架類)。在我的情況下測試輸出將是混亂的,因爲它將驗證流的內容是否有正確的腳本(單調乏味) – 2009-10-23 09:32:26
我認爲在測試時「我正在測試什麼?」是一個重要的問題。不知道更多關於您的問題,我會冒險猜測您正在測試某種圖像處理。嚴格地說,這個操作應該獨立於Image進行測試,比如字節流測試或其他。測試一個「系統」類通常被認爲是矯枉過正的 - 就像測試Web服務一樣,我也見過很多。人們可能會認爲CLR是「安全的」。 你想從系統類[即圖像]分離業務邏輯[即任何發生在你的圖像]。 – 2009-10-23 13:26:58
http://haacked.com/archive/2007/08/19/why-duck-typing-matters-to-c-developers.aspx – 2013-06-20 19:41:27