何時應該使用Mock物件?

2021-06-01 14:10:42 字數 869 閱讀 4230

英文原文:

中文原文:

在「ode to code「**上,k scott allen理性地分析了如何在單元測試中使用mock物件,並分享了他針對mock物件框架使用情況的想法。

首先,allen就人們對mock的常見誤解,丟擲了尖銳的意見:

我們知道,像與smtp伺服器通訊的物件這樣的資源,是很難在單元測試中使用的,有些人以為,只有在需要模擬出與這種資源之間的互動行為時,才用得上mock物件。他們是錯的。
接下來,他引用了

colin mackay講述mock的**,列出了一些常見的使用mock的場景:

然後allen便道出了文章的主旨。他認為,即使是上面列表中的內容也稍顯膚淺,從更深刻、更普遍的意義而言,應該是」在你想把被測試的**分離的時候,

test doubles[mocks]就顯出了作用。「簡而言之,按照allen的觀點,用了mock物件,業務元件的測試**就可以不依賴其它元件了;試舉一例來看,a依賴於b,但a的單元測試只會因為a的問題而出現問題,跟b的狀態無干。

文章還講到了在真正的測試驅動開發中,

mock物件所扮演的角色:

"

模擬角色,而非物件"的作者們寫到,mock技術:

"……在基於物件角色構建的系統中,可以識別出各種角色型別……尤其是,我們已經知道了mock object可以為我們帶來的最大好處——曾被稱為介面識別的概念"。

在文章的最後,allen評價了一些mock物件框架,包括

jmock、

easymock、

nunit。他堅持認為,雖然這些框架很簡單,但是想用得得心應手,還得花些心思。

在tdd yahoo討論組上,也發起了精彩的

討論,值得一讀。

何時應該使用Mock物件?

英文原文 中文原文 在 ode to code 上,k scott allen理性地分析了如何在單元測試中使用mock物件,並分享了他針對mock物件框架使用情況的想法。首先,allen就人們對mock的常見誤解,丟擲了尖銳的意見 我們知道,像與smtp伺服器通訊的物件這樣的資源,是很難在單元測試中...

四 使用Mock物件

很多情況下,需要與外部依賴打交道,如乙個rest位址,資料庫鏈結 外部io等 這些依賴有些速度過慢 有些不夠穩定,不符合單元測試要求的快速 可重複等原則性要求,因此引入了mock物件這一概念。與mock相關的還有stub這個單詞。一般來說,在編寫stub之後,需要將其注入依賴物件中,也即依賴注入 d...

何時使用物件導向程式設計

確定物件是物件導向分析和程式設計中最為重要的任務。物件同時包含 資料 和 行為 如果只對資料操作,使用列表 集合 字典或者python中的其他資料結構通常是更好的選擇 如果只關注行為而不儲存任何資料,那乙個簡單的函式則會更為合適。把物件當做 物件 來對待,不能因為能夠使用乙個物件就急於使用這個物件,...