2012-05-04 47 views
1

我正在研究來自Telerik的嘲笑框架JustMock。看起來很不錯,一切都好。有一個特別的特點對我們來說非常有趣,就是他們所說的Future Mocking。基本上你可以模擬一個在你想測試的方法內部創建的實例(我知道的錯誤代碼)。嘲笑框架中的未來嘲諷概念

例如:

public void foo() 
{ 
    var service = new MyService(); 
    service.DoSomething(); 
} 

所以這個功能將允許嘲笑該FOO()方法內使用的爲MyService實例。

我覺得TypeMock有類似的功能。

我想知道是否有其他的框架,允許這?起訂量? NMock? FakeItEasy?他們有這個功能嗎?任何其他框架?

+0

什麼阻止你自己研究這些框架? –

+2

那裏有太多的框架。閱讀所有這些文檔都非常耗時。 – pdiddy

回答

5

像你提到的傳統框架(Moq,NMock,FakeItEasy)基於生產代碼鬆散耦合的工作。在方法內部創建依賴關係(而不是通過參數或類構造函數傳遞它)使得注入假貨(存根或嘲笑)的接縫不可行。

JustMock和TypeMock利用探查器API(IIRC)來解決這個問題,以攔截和繞開代碼。另一種框架,確實這是Miscosoft Moles,很快就被命名爲假貨在Visual Studio 11

注:記住,雖然,後者框架更好 適合於緊密耦合的遺留代碼,您不能使用依賴注入。使用這些框架的測試 可能會比較慢,這是由於類似於類似於分析器的框架造成的 開銷。傳統的 框架更適合,如果你可以使用依賴注入,並希望單元測試儘可能快。

+0

謝謝,這是我在閱讀這些框架時所得到的。感謝您的確認! – pdiddy