为什么我应该使用单独的testing主机来运行XCTests,我应该怎么做?

我曾经问过一个与XCTests有关的问题 。 在其中一个答案中,我被告知,在运行unit testing时(至less在iOS开发中),使用单独的testing主机(除主应用程序之外)是常见的做法。 我试图find一些关于它的消息来源,但我不能

我明白,这可能是一个最好的做法,所以我真的很想了解它。 有人可以向我解释为什么它很重要,我从中得到什么好处,我应该怎么做呢? 链接到一些文章解释这个问题将不胜感激。

PS我明白,我需要testing的特殊环境(假内存数据库,模拟networking层等),但直到现在我设法实现它没有一个单独的testing主机,只使用我的主要应用程序,如Xcodebuild议默认。 但我相信可能有更好的办法。 而且我知道Xcode暗示的默认值并不总是那么好。

在unit testing中使用不同的主机应用程序的原因:

  1. 没有主要的应用程序,因为你的目标是一个图书馆。
  2. 当主应用程序启动时,它将完成启动过程。 这需要太长时间。

原因1几乎是一个给定的。 但是理由2呢?

我的方法是使用主应用程序,但在testing过程中使用不同的应用程序委托。 这样我就不必保持一个单独的应用程序,只是一个备用的启动过程。 请参阅如何轻松切换您的应用程序委托进行testing