2012-09-10 98 views
5

我們一直在研究如何使用新的Fakes framework來幫助我們提高在.net 4.0框架下運行的一些遺留代碼的測試覆蓋率。不幸的是,似乎我們將無法升級到.net 4.5。我說我們不能在.net 4.0(和VS2012)中使用Fakes框架並且我們需要使用現在不支持的Moles框架,這樣我才能正確嗎?Microsoft Fakes和.Net 4.0

回答

4

儘管我不是一般鼴鼠的粉絲,但我明白他們可以幫助他們獲得有關遺留代碼的測試。以下是一些您可以考慮的其他工具。但嚴重的是,我討厭這些類型的框架,因爲正確的做法是編寫可測試的代碼並重構不是的代碼(我明白這並非易事,也不可能)。我認爲痣擺脫的單元測試的主要好處之一,是它迫使你編寫好的代碼,這裏討論的:

這裏有兩件事情考慮:

  • Moles(Predecssor到MS假貨框架)
  • JustMock(小於TypeMock貴,但還是貴)
  • TypeMock(非常可笑貴!)

還有JustMock的免費,精簡版,不知道它包含。

+0

謝謝吉姆。我們非常認識到這些工具是最後的手段,任何從頭開始編寫的代碼都將在設計時考慮到測試並正確管理相關性。對我們來說,重構整個代碼庫並不實際,這就是爲什麼我們要看這些類型的隔離框架。 – gmancoll

0

我知道這不是你問的問題,而是你考慮/評估過非微軟模擬框架嗎?

Rhino.Mocks是令人難以置信的流行和強大,FakeItEasygrowing in adoption。它的文檔並不豐富,但它非常直觀且易於使用。

+0

由於我們正在處理遺留代碼,因此我們大多數的依賴關係並沒有很好地抽象出來,因此我們需要Moles/Fakes的繞道功能來嘲笑它作爲選項(它們是我們使用Moq的地方)。 – gmancoll

0

我測試3.5假裝,假貨測試它自我編譯爲4.5。我還沒有試過將它們編譯爲3.5,但不打算在部署機器上運行。

0

Microsoft Fakes框架支持與Visual Studio 2012本身相同的.NET版本。這包括版本4.5,4.0,3.5,3.0和2.0。

2

您應該使用Visual Studio 2012 Ultimate或Premium Update 2來使用Microsoft Fakes,並且單元測試可以將早期版本的.NET框架作爲目標。