2012-05-14 160 views
1

我想爲單元測試目的創建一個ImageSource的模擬。 ImageSource有一個內部構造函數,我既不能創建一個模擬也不能創建一個繼承類。正如這裏所說的刷子,但它也適用於ImageSource:How do I implement a custom Brush in WPF?用Moq嘲笑ImageSource

是否有任何解決方法呢?

+0

這個模擬的ImageSource實例,你需要將它提供給你寫的類或框架類嗎? – Gilles

+0

相當框架類。這是否有所作爲? – 0xddr

回答

2

如果我正確理解你的情況,你想創建一個沒有公共構造函數的密封類的模擬。

你不能用Moq做到這一點。

作爲一種解決方法,您可以使用其他「模擬/隔離」框架,即:TypeMock,它支持此功能。你也可能與微軟的鼴鼠交往。另一方面,如果你試圖在框架類中插入一個模擬的ImageSource實例,那麼你的測試可能會產生錯誤。

最起碼,你可以用另一個可以模擬的類抽象出框架類,而不需要你直接使用這個類和ImageSource。

+0

我被迫使用Moq。我測試自己的班級,而不是框架。從ImageSource中抽象出來似乎是解決我的問題的好方法。謝謝。 – 0xddr