在Xcode 7中为UI测试创建新目标时生成的初步骨架如下所示:
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
// In UI tests it is usually best to stop immediately when a failure occurs.
continueAfterFailure = false
// UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method.
XCUIApplication().launch()
// In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
}
我有AppDelegate
使用服务提供商访问各种存储库,例如UserService
用于查找用户等。
在我的单元测试包中,我有一个MockUserService
,它允许直接操作底层数据以进行测试。 一个解决方案是将其添加到主应用程序包中,让AppDelegate检查启动环境,并在给定一些测试标志/环境变量的情况下分配Mock
实现。这里的缺点是我必须通过应用程序发送我的Mock
实现 - 所以不要去。
我会喜欢,在上面的setUp()
方法中,执行以下操作:
XCUIApplication().delegate.serviceProvider = MockServiceProvider()
但是我似乎找不到在UI测试期间访问应用程序委托的简单方法,以使其进入“可测试”状态。
如何在此阶段访问/修改代表或基础应用程序的任何部分?