0
假設我想測試下載錯誤(例如,服務器關閉或憑據無效)的某些從存儲服務器下載文件的代碼遵循特定的操作過程, 。測試和例外,嘲笑
我看到兩種方法來測試:
選擇#1:初始化明顯不良憑證的真實下載服務器對象;當某些事情試圖用conn做某事時它會觸發一個異常;
FileServerConnection conn = new FileServerConnection("Invalid User", "Invalid Password");
選擇#2:嘲笑FileServerConnection類並指示模擬扔當FileServerConnection對象被構造異常;
我知道Choice#2優於Choice#1,但我不明白爲什麼..有人可以解釋爲什麼#2比#1好。我現在看到的第一個問題(星期五下午)唯一的問題是這是一個慢得多的測試(雖然慢了一兩秒)。
乾杯!的選擇#1
PS一個優點是,它是較少的代碼行寫:-)
選擇1不是一個單元測試,它是一個集成測試。 – Aurand
真正的選擇#1是一個集成測試,但從未說過它是我原始文章中的單元測試;然後問題就變成了:爲什麼在這種情況下單元測試而不是集成測試,因爲集成測試實際上是少量代碼編寫的; – MadSeb
@MadSeb - 你的標題字面上說單元測試... –