2012-12-06 39 views
8

在Xcode中,在我的單元測試結束時,我得到這樣一個結果:如何編寫預期的失敗?

測試套件「所有測試」在2012年12月6日10時23分38秒+0000

執行的完成195次測試,0失敗(0意外)在4.314(4.485)秒

我很想看看我如何定義與預期故障測試。

通常在其他測試框架中,我喜歡能夠將不完整的單元測試定義爲提醒未來必須完成的工作。這些測試應該只記錄爲警告,但如果一切正常,仍然會產生「成功」的最終結果。

看着Xcode的輸出,我假設有一種方法可以達到同樣的效果。但是我遇到問題找到正確的宏來標記不完整/ TODO測試。此外,它似乎很奇怪,我認爲正常的失敗報告爲:

執行的95次測試,在2.314(2.334)秒

因此1次失敗(0意外),任何測試斷言失敗似乎被期望。在這種情況下,我甚至會對(0意外)失敗的含義感到困惑。

任何人都可以解釋這部分日誌結果的含義嗎?它如何使用?我如何標記不完整的測試?

回答

7

「意外失敗」是一個拋出和未處理的異常。而不是一個可能的預期失敗,這是由斷言檢查。

OCUnit不提供將測試標記爲「不運行」的方法。請將它們註釋掉(這會使測試的風險不再編譯)或更改方法名稱,因此它沒有「測試」前綴。例如,將testSomething重命名爲XXXtestSomething。 (這會使您忘記將其改回的風險。)

+0

謝謝!一次又一次,你是偉大的可可測試英雄。在用rspec +黃瓜冒險在Ruby中完成100%BDD後,我的問題出現了。現在我明白可可項目中關於TDD格局的每一個咆哮。 – SystematicFrank

+0

如果這被記錄在某處,會很喜歡。但蘋果的單元測試還有很多不足之處。 – Step

1

我的問題的一個解決方案是使用警告預處理器宏來標記必須完成的單元測試。在編譯單元測試之後,我會對將來必須完成的工作有一個很好的概述。這顯示在警告面板中,因此比僅使用TODO註釋更具吸引力。

但是我寧願總計不完整的測試,並找出我的日誌報告總是「0意外」計數的含義。