2008-11-24 97 views
15

我是新來的嘲笑,我有一個新的.net Web項目是在UI-> BLL-> DAL-> DB結構中,我現在使用NUnit來做一些測試。我打算用它來測試中間層,所以我不必實際寫入數據庫。嘲笑傻瓜?

現在,我從來沒有做過任何嘲笑,也不知道從哪裏開始,所以我正在尋找一個模擬框架,有一些端到端的樣本!有人能指點我一些嘲笑的材料,從一開始就有完整的樣品嗎?

謝謝,

雷。

回答

3

Rhino Mocks是您可以使用的一個框架,我已經使用了一點點。

Cheat sheet有幾個鏈接,如果你想嘗試一些別人,雖然文章有點過時。 ?

+0

我第二次犀牛嘲笑我在一小時內撿起來。 – 2009-05-21 13:21:52

3

TypeMock ...

好,最好的嘲諷我 - 接口,你的代碼位的一些重構,並找出你想測試,這樣你就不需要任何嘲諷什麼。 或者 - 任何依賴注入來模擬一些東西(但在你需要重構一些當然之前)

9

你應該看看一些關於在Dimecasts.net上嘲笑的視頻,這是一種快速瞭解什麼嘲笑是關於並開始你自己的代碼。

Introduction to Moq

Introduction to RhinoMocks

+0

這些確實非常好,從這些短片中學到很多東西:)。 – Morph 2009-04-22 20:45:40

4

目前有許多不同的嘲弄框架。我建議你或者看看RhinoMock或TypeMock。兩者對於個人/開源項目都是免費的。 TypeMock也有公司許可證。

RhinoMock迫使您重構可測試性代碼(如果需要,如果您已經有可測試的代碼,您的表現很好)。這需要更多的工作,但它會給你留下鬆散耦合的代碼,這本身就是一個好處。由於這個原因,有些構造你根本無法直接用犀牛來嘲笑。但是,您總是可以引入額外的間接層並以此方式解決問題。但底線是:你需要做更多的工作,但最終的重構將會使你的代碼受益。

另一方面,TypeMock通過動態修改代碼(它使用分析器API來注入代碼)來工作。這可以讓你對那些不適合這種類型的測試的代碼進行模擬。 TypeMock幾乎可以讓你嘲笑任何東西(除了mscorlib),所以它很容易上手,並且與遺留代碼很好地協作。但是,由於您不必重構代碼,因此您不會獲得鬆散耦合類型的額外好處。另外,由於正在運行的代碼被修改,TypeMock有時會導致非常奇怪的錯誤。