2016-02-19 104 views
4

我曾經asked a question related to XCTests。在其中一個答案中,我被告知,在運行單元測試時(至少在iOS開發中),使用單獨的測試主機(除主應用程序之外)是一種常見做法。我試圖找到一些關於它的來源,但我不能爲什麼我應該使用單獨的測試主機來運行XCTests,我應該怎麼做?

我明白,這可能是一個最佳實踐,所以我很想了解它。有人可以向我解釋爲什麼它很重要,我從中得到什麼好處,我應該怎麼做呢?一些文章鏈接解釋這個問題將不勝感激。

P.S.我知道我需要特殊的測試環境(虛假內存數據庫,模擬網絡層等),但直到現在,我還是設法在沒有單獨的測試主機的情況下實現它,只需使用我的主應用程序,就像Xcode建議的那樣默認。但我相信可能有更好的辦法。而且我知道Xcode建議的默認值並不總是那麼好。

+0

**如果您認爲以前曾見過這種情況:**我已經提出了[與非常非常相似的文本問題](http://stackoverflow.com/questions/35506605/why-應該-I-使用-A-獨立測試,目標爲運行-xctests和知識,應該-I-DO)。但是由於我的錯誤,它是關於一個單獨的測試目標,而不是一個單獨的測試主機。如果你想知道爲什麼我保留這個問題並創建了一個新的問題,[這是一個元問題,解釋我的理由](http://meta.stackoverflow.com/questions/317294/i-was-given-a-good-回答,但是,當時的發現 - 即最的問題 - 是 - 錯什麼-SH#317294)。 – FreeNickname

+0

我建議做一些研究。在Interwebs上有很多這方面的... – matt

+0

@matt,我總是試圖首先找到自己的答案,但是這次我不成功,不幸的是。很難找到有關使用單獨測試主機的信息。大多數文章都關注如何將單元測試添加到現有項目,XCTests(Equal,EqualObjects等)以及其他所有可用的不同功能。這就是爲什麼我在這裏尋求幫助。 – FreeNickname

回答

4

理由使用不同的主機應用的單元測試:

  1. 沒有主要的應用程序,因爲你的目標是一個圖書館。
  2. 當主應用程序啓動時,它會經歷其啓動過程。這需要很長時間。

原因1幾乎是給定的。但是理由2呢?

我的方法是使用主應用程序,但在測試過程中使用不同的應用程序委託。這樣我就不必維護一個單獨的應用程序,只需要一個備用的啓動過程。請參閱How to Easily Switch Your App Delegate for Testing

+0

使用單獨的應用程序委託是有道理的,這樣我就不必讓兩臺主機(主應用程序和測試主機)保持同步。謝謝! – FreeNickname

相關問題