我一直在尋找使用Moq和Rhino Mock進行嘲諷的例子,所有的例子似乎都模擬了接口。爲什麼是這樣?我聽說他們可以嘲笑靜態類,但非靜態類呢?爲什麼模擬首選Interfaces?
2
A
回答
3
因爲:
- 在對象上的所有方法都將需要虛擬爲了嘲笑他們
- 你的模擬仍然需要執行真實對象的構造函數,傳遞參數和運行它內部的邏輯,這可能是痛苦的。
1
因爲這是DynamicProxy的限制(用於創建模擬對象的實例)。如果你使用界面,將沒有問題,但如果你想使用類,那麼你應該使所有公共成員虛擬。 http://tiredblogger.wordpress.com/2008/05/06/moq-mocks-use-virtual-method-or-interfaces/
相關問題
- 1. 什麼是jQuery的首選模板庫?
- 2. 爲什麼XHR和htmlfile首選JSONP?
- 3. 爲什麼異步IO首選
- 4. 爲什麼PHP首選__call()來__callStatic()?
- 5. 什麼行爲是首選? (嵌入Python)
- 6. Socket.io:爲什麼htmlfile首選XHR-Polling?
- 7. 爲什麼選擇iPad模擬器時Xcode啓動iPhone模擬器?
- 8. 什麼PHP擴展是首選?那麼安全首選項呢?
- 9. 爲什麼Android模擬器比iPhone模擬器慢?
- 10. 爲什麼模擬器只有12行?
- 11. 爲什麼我的模擬失敗?
- 12. 爲什麼我應該模擬對象?
- 13. 爲什麼要創建模擬對象?
- 14. WSAT爲什麼勝過模擬退火?
- 15. 模擬Microsoft C編譯器行爲的GCC選項是什麼?
- 16. 爲什麼我的Xcode 6.1.1模擬器選項全部消失?
- 17. 爲什麼「Extracted Interfaces」是內部的而不是公共的?
- 18. 爲什麼點擊首次
- 19. 爲php模塊選擇什麼模式?
- 20. 爲什麼選擇OOM?首先gc爲什麼tenured:8192K-> 8961K(10240K)?
- 21. 爲什麼不能將ListPreference轉換爲首選項? (機器人)
- 22. 爲什麼「use namespace :: autoclean」首選爲「no Moose」?
- 23. 爲什麼首選seq超過非空作爲謂詞?
- 24. AttributeError:爲什麼模塊首先導入不註冊爲屬性?
- 25. 爲什麼windbg命令首先。要麼 !
- 26. 這種情況在JavaScript中的首選模式是什麼?
- 27. 在ng2中創建中繼器的首選模式是什麼?
- 28. Emacs 24處理XML文件的首選模式是什麼?
- 29. 什麼是CRUD的首選模型配置?
- 30. 首先做什麼:特徵選擇或模型參數設置?