【问题标题】:Why should I use a separate test host for running XCTests and how should I do that?为什么我应该使用单独的测试主机来运行 XCTests,我应该怎么做?
【发布时间】:2016-06-01 15:31:55
【问题描述】:

我曾经asked a question related to XCTests。在其中一个答案中,有人告诉我,在运行单元测试时(至少在 iOS 开发中)使用单独的测试主机(除了主应用程序)是一种常见的做法。我试图找到一些关于它的资源,但我找不到

我明白,这可能是一个最佳实践,所以我真的很想了解它。有人可以向我解释为什么它很重要,我能从中得到什么好处以及我应该如何去做?非常感谢您提供一些解释该问题的文章的链接。

附:我知道我需要特殊的测试环境(假内存数据库,模拟网络层等),但到目前为止,我设法在没有单独的测试主机的情况下实现它,只使用我的主应用程序,就像 Xcode 建议的那样默认。但我相信可能有更好的方法。而且我知道 Xcode 建议的默认设置并不总是那么好。

【问题讨论】:

  • 如果你认为你以前看过这个:我已经问过a question with a very-very similar text。但是由于我的错误,它是关于一个单独的测试目标,而不是一个单独的测试主机。如果您想知道为什么我保留了这个问题并创建了一个新问题,here's a meta question explaining my reasons
  • 我建议做一些研究。互联网上有很多关于此的内容......
  • @matt,我总是尝试自己先找到答案,但是这次我没有成功,很遗憾。很难找到有关使用单独测试主机的具体信息。大多数文章侧重于向现有项目添加单元测试的方法、XCTests 中可用的不同功能(Equal、EqualObjects 等)以及其他所有内容。这就是我在这里寻求帮助的原因。

标签: ios unit-testing xctest


【解决方案1】:

使用不同主机应用进行单元测试的原因:

  1. 没有主应用,因为您的目标是一个库。
  2. 当主应用程序启动时,它会经历其启动过程。这需要很长时间,并且有副作用。

原因 1 几乎是给定的。但是原因2呢?

我的方法是使用主应用程序,但在测试期间使用不同的应用程序委托。这样我就不必维护一个单独的应用程序,只需一个备用启动过程。见How to Easily Switch Your App Delegate for Testing

【讨论】:

  • 使用单独的应用程序委托是有意义的,这样我就不必让两个主机(主应用程序和测试主机)保持同步。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-15
  • 2012-02-11
相关资源
最近更新 更多