ios – 使用登录系统进行Xcode UI测试
发布时间:2020-12-14 19:44:21 所属栏目:百科 来源:网络整理
导读:我有一个带登录系统的应用程序,所以一旦用户登录了应用程序,我将他们的会话存储在本地数据库中,这会阻止用户每次使用该应用程序时都登录.显然,如果用户尚未登录,则应用程序会显示LoginViewController,但如果应用程序检测到用户的当前会话,则会显示HomeViewCo
我有一个带登录系统的应用程序,所以一旦用户登录了应用程序,我将他们的会话存储在本地数据库中,这会阻止用户每次使用该应用程序时都登录.显然,如果用户尚未登录,则应用程序会显示LoginViewController,但如果应用程序检测到用户的当前会话,则会显示HomeViewController.
我已经为我的HomeViewController创建了一些测试,它们都运行良好.但是,我已经意识到它们工作正常,因为应用程序当前存储了会话.如果我进入应用程序并注销当前用户,当我运行UI测试时,它们将失败.这是有道理的,因为测试需要显示HomeViewController,而是显示LoginViewController. 考虑到我还想为LoginViewController创建UI测试,创建一个解决方案似乎是合理的,在每个测试中,如果用户是否登录,我会设置.我怎么能这样做? 解决方法
经过一番研究,在XCUIApplication发现参数/环境中找到答案.这允许您在执行稍后可由主代码解释的测试时发送某些配置.
为了我的工作,我放置了以下代码: // UI Test func testWelcomeIsShown() { let app = XCUIApplication() app.launchArguments.append("isUITestingLogin") app.launch() // Rest of your test steps } // AppDelegate or wherever you fetch your current session func getCurrentSession() { if NSProcessInfo.processInfo().arguments.contains("isUITestingLogin") { session = nil } else { session = DatabaseManager.getSession() } } 注意:此代码适用于记录和执行测试.但是,如果您使用相同的逻辑进行多个测试,则可能会将testWelcomeIsShown()的前3行移动到测试类的setUp().但是,请务必记住,在记录测试时不会执行此设置,因此您需要手动设置无当前会话环境. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- ORACLE ref cursor的简单使用
- c – 对`cv :: DescriptorMatcher :: knnMatch的
- 如何在JSONObject中保留LinkedHashMap排序?
- 小胖说swift12------swift中判断NaN
- oracle – PL / SQL:错误“PLS-00306:调用的参
- C#关闭申请后打开文件[复制]
- .net – 生成IEnumerable(Of T)的元素的所有唯一
- c# – 如何正确绑定ViewModel(包括分隔符)到WPF的
- objective-c – 带有popViewController和swipe的
- vue编译打包本地查看index文件的方法
热点阅读