2014-02-25 120 views
3

我正在編寫一個測試方法,我希望SUT在某些情況下拋出異常。代碼如下所示:XCTAssertThrows在斷點處停止

- (void) testCantStartTwice 
{ 
    XCTAssertThrows([self.sut start], @""); 
} 

現在,一切都很好,測試通過。但是,我讓Xcode爲所有ObjC異常設置了一個Exception Breakpoint,這在調試器中測試應用程序時非常有用。就像你現在,現在當我用⌘U執行我的測試套件時,現在它停止在那個測試中,看起來好像它失敗了,儘管它說「測試成功」。

任何方式使斷點不停止在那個測試?

感謝所有最好的

回答

1

也許你可以在測試時使用測試失敗斷點而不是異常斷點。關於單元測試的wwdc 2013視頻概述了檢查測試失敗的相當不錯的工作流程。它基本上說:

  1. 設置一個測試失敗斷點,這將允許您檢查導致失敗的條件。
  2. 如果需要,請在測試的早期設置手動斷點,然後重新運行,以便像往常一樣逐步導致導致失敗的語句。

這不是一個真正的直接答案,但據我所知,我認爲沒有辦法爲異常斷點創建異常。希望它有幫助

+0

瑞安,謝謝你的答案!這是一個很好的解決方案,但是,在Sim或Device上執行應用程序時,異常斷點非常有用。理想情況下,運行時應該有一組斷點,並在測試時設置一個斷點,有沒有辦法像這樣設置斷點? –

0

我有同樣的問題,我一直在尋找2小時解決方案。可能我們對此無能爲力。