Xcode 7†有一种直接测试UI的新方法,包括一个新的测试目标“†UI测试绑定”(或"OS“)。

在UI测试目标中,似乎没有内置的对包含应用程序的模型或类的访问。例如,[UIApplication sharedApplication]不能从您的UI测试中调用。这意味着“应用程序测试”和"UI测试“存在于一个可能无法弥合的鸿沟中。
如前所述,这里
问题是Xcode的UI测试不允许访问实际的应用程序。
问题:
xcodeproj。†在编写时,测试版软件。
发布于 2015-08-18 15:19:49
黑匣子测试
UI测试是一个黑匣子测试框架。您不应该知道您正在测试的代码的实现情况。
例如,您应该只关心标签上的值是否发生变化,而不是控制器将正确的数据传递给视图。您可以从应用程序的用户的视角来考虑UI测试。她并不关心您的ItemsViewController是如何工作的(甚至不关心它是否存在),那么为什么UI测试应该这样做呢?
让它“工作”
话虽如此,我理解你的沮丧。如果你能旋转一个视图控制器,然后点击UI测试和做出断言,那就太好了。然而,从Beta 5开始,这是不可能的。
有趣的是,您可以在UI测试的顶部使用一个简单的@testable import ModuleName创建应用程序对象的实例。请注意,您实际上不能通过.tap()-like方法与其交互,因为它是一个UI*类,而不是XCUI*类。
假设Donut是应用程序的模块名。
import XCTest
@testable import Donut
class DonutUITests: XCTestCase {
let app = XCUIApplication()
override func setUp() {
continueAfterFailure = false
app.launch()
}
func testItemsViewController() {
let controller = ItemsViewController()
controller.addItemButton.tap() // <---- UIButton does not respond to tap()!
}
}https://stackoverflow.com/questions/31521259
复制相似问题