[unit-testing] 什麼是嘲笑?


Answers

SO上有很多答案,網上關於嘲笑的好帖子。 你可能想開始尋找的一個地方是Martin Fowler Mocks不是存根(Stubs) ,他討論了很多嘲笑的想法。

在一段中 - 模擬是一種特殊的技術,它允許測試代碼單元而不依賴於依賴關係。 一般來說,區別於其他方法的嘲笑是用來代替代碼依賴關係的模擬對象將允許設置期望 - 模擬對象將知道它是如何被代碼調用以及如何響應的。

你原來的問題提到了TypeMock,所以我把答案留在下面:

TypeMock是商業模擬框架的名稱。

它提供了RhinoMocks和Moq等免費模擬框架的所有功能,以及一些更強大的選項。

無論你是否需要TypeMock都是非常值得商榷的 - 你可以用免費的嘲諷庫來做大多數嘲笑,許多人認為TypeMock提供的功能通常會讓你遠離封裝好的設計。

正如另一個回答所說'TypeMocking'實際上並不是一個定義的概念,但可以被認為是TypeMock提供的嘲笑類型,它使用CLR探查器在運行時攔截.Net調用,賦予偽對象更多的能力(而不是要求如需要接口或虛擬方法)。

Question

什麼是嘲笑? 。




模擬是一種以受控方式模擬真實方法/對象行為的方法/對象。 模擬對像用於單元測試。

通常,測試下的方法會調用其中的其他外部服務或方法。 這些被稱為依賴關係。 一旦被嘲笑,依賴就像我們定義它們的方式一樣。

通過mock控制依賴關係,我們可以輕鬆測試我們編寫的方法的行為。 這是單元測試。

模擬對象的目的是什麼?

嘲笑vs存根

單元測試與功能測試




我認為使用TypeMock隔離器嘲諷框架將是TypeMocking。

它是一種生成模塊以用於單元測試的工具,無需用IoC編寫代碼。




模擬正在生成模擬真實對象行為以進行測試的偽對象




Related