2013-07-10 42 views

回答

4

在單元測試的環境中,模擬提供了一種被測試代碼與之交互的類型的假實現。

http://en.wikipedia.org/wiki/Mock_object

本書"The Art of Unit Testing"羅伊Osherove具有很好的解釋和我建議,如果你開始使用C#中的單元測試

從存根有模擬的不同之處在於它驗證互動與您的代碼在測試。存根只是返回預定義的值以幫助單元測試您的代碼。

1

請參閱!!我會給你一些讓你理解的簡單例子。

  1. 假設有在類中的方法說ParseEBCDICFileToASCII(strig fileName),如果文件存在與否File.Exist()該文件還將驗證。現在,您正在爲解析邏輯編寫單元測試,並且您在ParseEBCDICFileToASCII方法中提供了一些文件路徑,則此方法將始終失敗或返回,因爲您提供的文件實際上並不存在。 在這種情況下,您將以這樣的方式嘲笑File.Exist(),只要這會調用您將返回假/嘲諷的值。因此在單元測試中,您的邏輯File.Exist將始終返回模擬值。

  2. 此外,有些情況下,您正在爲任何Web服務編寫客戶端應用程序的測試,然後單元測試您不需要實際的Web服務。你可以寫一個嘲弄的Web服務,你的實際邏輯將總是打到嘲笑的服務返回嘲弄的價值。

所以嘲諷是返回假值,這樣就可以更專注於測試你的實際邏輯的方式...