所有標(biāo)準(zhǔn)的Xcode調(diào)試工具可以在執(zhí)行測(cè)試時(shí)使用队萤。
測(cè)試調(diào)試工作流
首先要確定的是導(dǎo)致失敗的問(wèn)題是在您正在測(cè)試的代碼中的錯(cuò)誤或正在執(zhí)行的測(cè)試方法中的錯(cuò)誤利朵。測(cè)試失敗可能指向幾種不同類(lèi)型的問(wèn)題 - 您的假設(shè)认境,要測(cè)試的代碼或測(cè)試代碼本身 - 因此調(diào)試測(cè)試可以跨越幾個(gè)不同的工作流复亏。然而,你的測(cè)試方法通常相對(duì)較小和直接默终,所以最好首先檢查測(cè)試的目的是什么以及如何實(shí)現(xiàn)。
以下是一些常見(jiàn)問(wèn)題:
1.測(cè)試的邏輯是否正確?執(zhí)行是否正確妇智?
檢查拼寫(xiě)錯(cuò)誤和不正確的文字值總是一個(gè)好主意滥玷,您可能將其用作測(cè)試方法用作比較基準(zhǔn)的參考標(biāo)準(zhǔn)。
2.有什么假設(shè)巍棱?
例如惑畴,您可能在測(cè)試方法中使用錯(cuò)誤的數(shù)據(jù)類(lèi)型,為您要測(cè)試的代碼創(chuàng)建范圍錯(cuò)誤航徙。
3.您是否使用正確的斷言報(bào)告通過(guò)/失敗狀態(tài)如贷?
例如,或許測(cè)試的條件需要XTCAssertTrue而不是XCTAssertFalse到踏。有時(shí)很容易出現(xiàn)此錯(cuò)誤杠袱。
假設(shè)你的測(cè)試假設(shè)是正確的,并且測(cè)試方法正確形成窝稿,那么問(wèn)題就在于被測(cè)試的代碼楣富。是時(shí)候找到并修復(fù)它。
測(cè)試特定的調(diào)試工具
Xcode有一些專(zhuān)門(mén)的工具伴榔,專(zhuān)門(mén)用于幫助您在使用測(cè)試時(shí)定位和調(diào)試代碼菩彬。
測(cè)試失敗斷點(diǎn)
在斷點(diǎn)導(dǎo)航器中,單擊添加按鈕(+)潮梯,然后選擇添加測(cè)試失敗斷點(diǎn)以在開(kāi)始測(cè)試運(yùn)行之前設(shè)置特殊斷點(diǎn)骗灶。
當(dāng)測(cè)試方法發(fā)布失敗斷言時(shí),此斷點(diǎn)停止測(cè)試運(yùn)??行秉馏。這使您有機(jī)會(huì)通過(guò)在測(cè)試代碼中的故障點(diǎn)之后立即停止執(zhí)行來(lái)快速找到問(wèn)題所在的位置耙旦。你可以在此視圖中看到testAddition測(cè)試方法,比較字符串已被強(qiáng)制斷言失敗萝究,通過(guò)設(shè)置參考標(biāo)準(zhǔn)比較到錯(cuò)誤的字符串免都。測(cè)試故障斷點(diǎn)檢測(cè)到故障斷言,并在此時(shí)停止測(cè)試執(zhí)行帆竹。
當(dāng)測(cè)試運(yùn)行停止時(shí)绕娘,你停止測(cè)試的執(zhí)行。然后在斷言之前設(shè)置常規(guī)斷點(diǎn)栽连,再次運(yùn)行測(cè)試(為了方便和節(jié)省時(shí)間险领,可以使用源代碼編輯器中的Run按鈕運(yùn)行此測(cè)試),并進(jìn)行調(diào)試操作以解決問(wèn)題秒紧。
使用項(xiàng)目菜單命令運(yùn)行測(cè)試
調(diào)試測(cè)試方法是記住菜單命令項(xiàng)目>執(zhí)行操作>再次測(cè)試和項(xiàng)目>執(zhí)行操作>測(cè)試的好時(shí)機(jī)绢陌。如果你正在編輯在故障后修復(fù)的代碼或運(yùn)行當(dāng)前正在處理的測(cè)試方法,則它們提供了重新運(yùn)行最后一個(gè)測(cè)試方法的方便方法熔恢。有關(guān)詳細(xì)信息脐湾,請(qǐng)參閱使用產(chǎn)品菜單。當(dāng)然叙淌,你可以通過(guò)使用測(cè)試導(dǎo)航器中的運(yùn)行按鈕或源代碼編輯器來(lái)運(yùn)行測(cè)試秤掌,無(wú)論哪個(gè)你覺(jué)得更方便愁铺。
助理編輯類(lèi)別
輔助編輯器類(lèi)別中添加了兩個(gè)專(zhuān)門(mén)類(lèi)別,專(zhuān)門(mén)用于測(cè)試闻鉴。
1.測(cè)試來(lái)電者類(lèi)別帜讲。如果你剛剛修復(fù)了應(yīng)用程序中導(dǎo)致測(cè)試失敗的方法,您可能需要檢查該方法是否在任何其他測(cè)試中調(diào)用以及它們是否繼續(xù)成功運(yùn)行椒拗。使用源編輯器中的相關(guān)方法,打開(kāi)助理編輯器获黔,然后從菜單中選擇測(cè)試類(lèi)類(lèi)別蚀苛。彈出菜單將允許您導(dǎo)航到調(diào)用它的任何測(cè)試方法,以便您可以運(yùn)行它們玷氏,并確保你的修復(fù)沒(méi)有創(chuàng)建回歸堵未。
2.測(cè)試類(lèi)別。這個(gè)助理編輯器類(lèi)別與測(cè)試調(diào)用程序類(lèi)似盏触,但顯示一個(gè)類(lèi)的列表渗蟹,這些類(lèi)中有測(cè)試方法,它們引用您在主源代碼編輯器中編輯的類(lèi)赞辩。這是一個(gè)很好的方法來(lái)識(shí)別添加測(cè)試的機(jī)會(huì)雌芽,例如,到尚未并入調(diào)用它們的測(cè)試方法的新方法辨嗽。
測(cè)試時(shí)的異常斷點(diǎn)
通常世落,異常會(huì)在異常斷點(diǎn)捕獲時(shí)停止測(cè)試執(zhí)行,因此通常在禁用異常斷點(diǎn)時(shí)運(yùn)行測(cè)試糟需,以便在觸發(fā)斷開(kāi)點(diǎn)時(shí)定位不適當(dāng)?shù)臄帱c(diǎn)屉佳。當(dāng)您在特定問(wèn)題中歸巢時(shí),并且要停止測(cè)試以更正它時(shí)洲押,您啟用異常斷點(diǎn)武花。