TLDR:没有主机应用程序运行iOS单元测试有哪些限制?
互联网上有很多关于iOS无主机测试(逻辑与应用测试)的帖子可能已经过时了。例如,根据this和this Stack Overflow post,您无法在逻辑测试中实例化UIFont
。我只是尝试使用运行iOS 10.2的Xcode 8.2.1和iPhone 7模拟器,它似乎工作正常。
这是一个带有这样一个测试的示例项目: https://github.com/lyahdav/SnapshotLogicTest
这实际上是Xcode逻辑测试的限制 - 它们不会启动 一个UIApplication实例,并没有与UIKit很好地合作
但是如果你看一下我上面的示例项目,它创建一个UIView并使用FBSnapshotTestCase来断言视图在逻辑测试中呈现相同,一切似乎都能正常工作。
此外,我无法找到Apple的应用程序测试文档。例如,this post和this post链接到Apple网页,现在似乎已经死了,我无法找到更换它的新页面。
我想知道Apple是否已将这种差异降至最低,因为差异只是在您的测试目标上设置主机应用程序。但是,如果逻辑测试存在任何限制,我也不清楚。我非常喜欢它们,因为它允许我为我的应用程序部分创建更小,更独立的测试目标,这些目标可以比Application Test套件快得多。
更新:我想我会添加一条关于UI Testing的说明。根据Apple doc,从Xcode 7开始,他们将UI测试添加为XCTest的一部分。这似乎与关于主机与无主机单元测试目标的观点正交。
答案 0 :(得分:0)



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


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