如何在具有KIF测试框架的设备上确认系统警报?

时间:2018-04-06 14:56:51

标签: ios swift permissions kif

我发现如何使用以下代码行在this帖子的模拟器上确认系统警报:

self.viewTester.acknowledgeSystemAlert()

不幸的是,KIF代码包含#if TARGET_IPHONE_SIMULATOR,所以它不能在设备上工作。如何在自动化测试期间绕过设备上的权限警报?

1 个答案:

答案 0 :(得分:1)

我有同样的问题,在这里我发现了解决方案:

它的权利比这个KIF功能不​​适用于设备,它只适用于模拟器!所以,你可以在UITarget中有一个UITest,只有一个测试用例就可以添加这样的UIMonitor:

// ask for all the permission from users then : 
   _ = addUIInterruptionMonitor(withDescription: "") { alert -> Bool in
        let confirmLabels = ["Allow", "OK"]
        for (_, label) in confirmLabels.enumerated() {
            let allow = alert.buttons[label]
            if allow.exists {
                allow.tap()
                break
            }
        }

        return true
    } 
// do some UI interaction here like tapping on some view in app 

因此,您可以在运行UnitTests之前每次调用此UITest,这将使您的应用程序具备所有权限。

顺便说一句,如果有人有更好的解决方案,请提供我也想知道的原因;)