栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

是否可以直接在XCUITest中打开屏幕?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

是否可以直接在XCUITest中打开屏幕?

据我所知,您不能使用XCUITest
framework直接进入第二个屏幕。无论如何,文档指出:

UI测试的执行方式与用户无需访问应用程序的内部方法,函数和变量的方式相同。这使您的测试可以以与用户相同的方式查看应用程序,从而暴露出用户遇到的UI问题。

这意味着如果您的应用程序用户无法直接到达第二个屏幕,为什么您的UI会进行测试。

我知道在运行测试时等待进入第二个屏幕很耗时,但是您可以跳过为每个测试编写它的过程。要只编写一次,请在XCTestCase类中编写一个函数,在其中实现调用第二个屏幕并在

setUp()
方法中调用该函数。然后,每次运行测试时都会调用跳过第一个屏幕的过程,因为
setUp()
在每次测试运行之前都会调用方法。

编辑

阅读您的评论后,我可以想到一种解决方案。您可以使用Launch
Environment
和/或Launch
Arguments
从测试中与您的应用进行通信。因此,在您的XCTestCase类中,设置参数和环境:

class ForgotPasswordUITest: XCTestCase {    let app = XCUIApplication()    override func setUp() {        app.launchArguments += ["UI-TESTING"]        app.launchEnvironment["pageToGo"] = "forgotPassword"        app.launch()    }}

然后,在您的ViewController中,编写以下计算的属性:

var isUiTestingEnabled: Bool {    get {        return ProcessInfo.processInfo.arguments.contains("UI-TESTING")    }}var shouldShowForgotPassword: Bool {    get {        return ProcessInfo.processInfo.environment["pageToGo"] == "forgotPassword"    }}var shouldShowHelpScreen: Bool {    get {        return ProcessInfo.processInfo.environment["pageToGo"] == "helpScreen"    }}

viewDidLoad()
方法中,您可以具有以下内容:

    if isUiTestingEnabled {        if shouldShowForgotPassword { let storyboard = UIStoryboard(name: "Main", bundle: nil) let secondViewController = storyboard.instantiateViewController(withIdentifier: "ForgotPasswordViewController") self.present(secondViewController, animated: true, completion: nil)        } else if shouldShowHelpScreen { let storyboard = UIStoryboard(name: "Main", bundle: nil) let secondViewController = storyboard.instantiateViewController(withIdentifier: "HelpScreenViewController") self.present(secondViewController, animated: true, completion: nil)        }    }

注意 :这是一个非常肮脏的技巧,不建议您编写UI测试的方法。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/378897.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号