2012-11-24 36 views
2

我們正在使用Moq,我想知道virtual方法的當前角色是什麼 - 在2008年下面的帖子中,很明顯你必須將你的方法標記爲虛擬的,以便Moq能夠工作(或繼承自接口)使用Moq時還需要虛擬方法嗎?

Moq discussion

然而,就是這個還在.NET 4.5的情況下,你需要使用你想嘲笑類virutal的方法呢?當你創建一個靜態方法的包裝類時,這是否也適用 - 包裝類要麼從接口繼承,要麼需要將有問題的方法標記爲virtual

回答

2

這在.NET 4或4.5中沒有改變。正如你提供的鏈接所解釋的那樣,Moq使用Castle Windsor Dynamic Proxy來生成你想要模擬的類型。因此,適用繼承的標準規則。由Moq生成的派生類型只能攔截對任何常規派生類可以覆蓋的方法的調用。