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

时间:2016-12-31 01:21:24

标签: ios xcode unit-testing

TLDR:没有主机应用程序运行iOS单元测试有哪些限制?

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

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

根据this blog post

  

这实际上是Xcode逻辑测试的限制 - 它们不会启动   一个UIApplication实例,并没有与UIKit很好地合作

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

此外,我无法找到Apple的应用程序测试文档。例如,this postthis post链接到Apple网页,现在似乎已经死了,我无法找到更换它的新页面。

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

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

1 个答案:

答案 0 :(得分:0)




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







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