簡體   English   中英

模擬對象如何替換正在測試的所有系統功能?

[英]How can mock object replace all system functionality being tested?

我是單元測試的新手。 目前,我在嘗試對Google oAuth Picasa身份驗證進行單元測試時遇到了麻煩。 如果我想對其進行單元測試,則涉及代碼的重大更改(是的,我在應用程序運行后開發了單元測試)。

我讀過,模擬對象可能是要走的路。 但是,如果我使用Mock,我怎么知道該功能(即Google oAuth Picasa身份驗證)確實有效?

或者,除了在應用程序完成后進行單元測試外,在理解Mock方面是否犯了其他錯誤?

當單元測試,你在隔離測試特定的單元(函數/方法...),這意味着你不在乎,如果你的函數使用,工作(因為有覆蓋的其他單元測試用例)等組成。

因此,回答您的問題-超出單元測試的范圍,例如Google oAuth之類的外部服務是否有效。 您只需要測試是否可以正確調用它,這就是Mock派上用場的地方。 它記住了您檢查並對其進行斷言的調用,但是它阻止了實際向外部服務/組件/庫/其他發出請求的請求。

編輯:如果您發現代碼過於復雜且難以測試,則可能表明應將其重構為更小,更易於管理的部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM