iOS无主机测试目标(以前的逻辑测试)有哪些限制?

TLDR:没有主机应用程序运行iOSunit testing有哪些限制?


互联网上有很多关于iOS无主机测试(逻辑与应用测试)的post可能已经过时了。 例如,根据此和此Stack Overflowpost,您无法在逻辑测试中实例化UIFont 。 我只是尝试使用运行iOS 10.2的Xcode 8.2.1和iPhone 7模拟器,它似乎工作正常。

这是一个带有这样一个测试的示例项目: https : //github.com/lyahdav/SnapshotLogicTest

根据这篇博文 :

这实际上是Xcode逻辑测试的限制 – 它们不启动UIApplication实例并且不能很好地与UIKit一起使用

但是如果你看一下我上面的示例项目,那就是创建一个UIView并使用FBSnapshotTestCase来断言视图在逻辑测试中呈现相同,一切似乎都能正常工作。

另外,我找不到Apple的Logic vs Application测试文档了。 例如, 这篇post和这篇post链接到Apple网页,现在似乎已经死了,我找不到更换它的新页面。

我想知道Apple是否已经最小化了区别,因为差异只是在您的测试目标上设置主机应用程序。 但是我不清楚逻辑测试是否有任何限制。 我非常喜欢它们,因为它允许我为我的应用程序部分创建更小,更孤立的测试目标,这些目标可以比Application Test套件快得多。

更新:我想我会添加一个关于UI测试的说明 。 根据Apple doc,从Xcode 7开始,他们将UI测试添加为XCTest的一部分。 这似乎与关于主机与无主机unit testing目标的观点正交。

我想知道Apple是否已经最小化了区别,因为差异只是在您的测试目标上设置主机应用程序。

现在有unit testing和UI测试。 两者都涉及运行应用程序。 Apple根本不再单独讨论逻辑测试。