加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – Xcode UI测试 – 使用存储的凭据登录/注销

发布时间:2020-12-14 17:47:30 所属栏目:百科 来源:网络整理
导读:我想在我的iOS应用程序( Xcode 7.2.1)中运行登录过程的功能(UI)测试. 应用程序的行为是,成功登录后,将存储用户凭据,以便在下次启动时自动登录(不显示登录屏幕). 因此,我在登录屏幕中设置了一系列UI事件,以便在iOS模拟器中首次启动应用程序时通过登录测试. 但
我想在我的iOS应用程序( Xcode 7.2.1)中运行登录过程的功能(UI)测试.

应用程序的行为是,成功登录后,将存储用户凭据,以便在下次启动时自动登录(不显示登录屏幕).

因此,我在登录屏幕中设置了一系列UI事件,以便在iOS模拟器中首次启动应用程序时通过登录测试.
但是,下次我运行我的测试将失败,因为登录屏幕甚至没有按预期显示.

我在这里看到两个选项,它们似乎都不合适:

>在每次测试运行之前,使用脚本重置iOS模拟器的内容和设置.我尝试在测试目标的Build Phases中添加一个Run Script阶段:xcrun simctl shutdown booted&& xcrun simctl擦除所有&& killall“模拟器”,它似乎不起作用(模拟器应用程序不启动和测试卡住).
>包括 – (void)tearDown一些代码来清除存储的用户凭据.这个选项不好,因为它不仅在每个测试方法之间运行(不是每次测试启动),而且似乎我无法访问用于清除用户凭据的AuthManager类.

在UI测试这样的登录程序时你会怎么做?

解决方法

我遇到过相同类型的问题.经过一番抨击我最好的方法是尝试让事情变得更简单.在我的撕裂中,我总是“放松”我可能做过的任何事情.有时它太过分了,但它仍然是很好的做法.如果我做了某种硬重置,我在放松的时候发现了许多错误,我可能会忽略它们. IE:我将导航回主页(我的起点),如果我已登录,那么我只需退出即可.为了记录,当用户注销时,在应用程序端,他们的凭据被剥离.

例如,在我的SignInTests.swift类中,我将所有方法放在同一个类文件的扩展中.这样我就可以简单地调用SignInTests().signIn()或SignInTests().signOut(),这样我就可以从任何其他可能调用signOut()的测试类中访问它们.

这是我的场景,对我来说非常合适.可能不是你的最佳选择,但我希望它指出你正确的方向.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读