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

2024-04-12

我想在我的 iOS 应用程序 (Xcode 7.2.1) 中运行登录过程的功能 (UI) 测试。

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

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

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

  1. 每次运行测试之前,使用脚本重置 iOS 模拟器的内容和设置。我尝试添加一个Run Script测试目标的阶段Build Phases with: xcrun simctl shutdown booted && xcrun simctl erase all && killall "Simulator",并且它似乎不起作用(模拟器应用程序无法启动并且测试陷入困境)。
  2. 包括在-(void)tearDown一些代码来清除存储的用户凭据。这个选项也不好,因为它不仅在每个测试方法之间运行(不是每个测试启动),而且似乎我无权访问AuthManager我用来清除用户凭据的类。

当进行这样的 UI 测试登录过程时,您会做什么?


我遇到过同样类型的问题。经过一番抨击后,我最好的方法是尝试让事情变得更简单。在我的眼泪中,我总是“放松”我可能做过的任何事情。有时这有点矫枉过正,但仍然是很好的做法。我在放松时发现了许多错误,如果我进行某种硬重置,我可能会忽略它们。 IE:我将导航回主页(我的起点),如果我已登录,那么我只需注销即可。根据记录,在应用程序端,当用户注销时,他们的凭据将被删除。

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

这是我的场景,非常适合我。可能不是您的最佳选择,但我希望它能为您指明正确的方向。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Xcode UI 测试 - 使用存储的凭据登录/注销 的相关文章

  • 使用 iOS 8 自定义键盘发送图像?

    我一直在为 iOS 8 开发自定义键盘 但在尝试使用键盘发送图像时偶然发现了一个问题 我做了一些研究 似乎没有一种简单的方法可以做到这一点UITextDocumentProxy因为只有NSStrings被允许 我是否忽略了使用自定义键盘发送
  • iPhone 应用程序中的异步、同步、线程

    我正处于一个应用程序的设计阶段 该应用程序将利用 REST Web 服务 并且在使用异步 同步和线程方面遇到了困境 这是场景 假设您有三个选项可供深入研究 每个选项都有自己的基于 REST 的资源 我可以使用同步请求延迟加载每个请求 但这会
  • 如何替换已弃用的方法dispatch_get_current_queue()? [复制]

    这个问题在这里已经有答案了 我正在 iOS 5 中使用 xmppframework 开发一个聊天应用程序 它工作得很好 但我将 Xcode 更新到 4 5 1 将 iOS 5 更新到 iOS 6 将 Mac OS 更新到 10 7 5 但由
  • 网站在 iPhone 屏幕右侧显示空白区域

    我遇到问题http eiglaw com http eiglaw com iPhone 屏幕右侧显示约 25 像素宽的空白 边框 我在 stackoverflow 上研究了这个问题 这些帖子是相关的 但是当我尝试提供的各种解决方案时 我无法
  • 如何在 Firebase 控制台中使用 Apple 新的 APN .p8 证书

    随着最近 Apple 开发者帐户的升级 我面临着一个困难 在尝试创建推送通知证书时 它为我提供了 p8 证书 而不是可以导出到 p12 的 APNs 证书 Firebase 控制台仅接受 p12 证书 那么我如何从这些新的 p8 证书中获取
  • 模块未使用库演化支持进行编译;使用它意味着无法保证二进制兼容性

    最近我遇到了 SDK 的编译时警告 这是否意味着它不是使用目标设置 构建用于分发的库 构建的 你需要设置Build Libraries for Distribution在项目中Build Settings to No然后它就会消失
  • Parse.com 从相关 PFObject 获取 PFUser

    我正在将照片保存为 PFObject 解析 并使用 PFUser currentUser 用户 ID 作为其键之一 我想在表格视图中显示照片以及该 PFUser 的详细信息 但是当我尝试获取用户时 PFUser user self phot
  • 带操作按钮的颤动本地通知

    我在我的 flutter 项目中尝试了 flutter 本地通知插件 它在简单通知上工作正常 但我需要带有操作按钮的通知功能 请帮助我或建议我实现此功能 不幸的是 flutter local notifications 插件尚不支持操作按钮
  • UIScrollView setZoomScale 将应用的旋转设置回零

    我已经从事地图替换工作很长一段时间了 整个事情的工作原理是UIScrollView由一个支持CATiledLayer 为了旋转我的地图 我旋转图层本身 使用CATransform3DMakeRotation 到目前为止效果很好 但如果我打电
  • 当地图视图只是屏幕的一部分时,如何在 iOS 模拟器中进行捏合?

    我在 iPad 上有一个视图 我正在添加MKMapView也就是说 全屏高度的一半 然而 当我尝试在 iOS 模拟器上进行捏合时 它不起作用 因为 to nubs 填充了模拟器上的整个 iPad 视图 And so with the map
  • 适用于 iPhone / iPad / iOS 的快速、精益 PDF 查看器 - 提示和提示?

    最近有很多关于绘制 PDF 的问题 是的 您可以使用UIWebView但这无法提供您所期望的优秀 PDF 查看器的性能和功能 您可以绘制PDF页面到 CALayer http www cocoabuilder com archive coc
  • 如何使用 Swift 使用 TouchID?

    Apple 为 iOS 8 的 TouchID 实现提供的文档采用 Objective C 语言 有 Swift 版本吗 Objective C IBAction touchIDAvailable UIButton touchIDAvail
  • UIPanGestureRecognizer 对坐标的限制

    我在主 UIView 中添加了一个子视图 称为panel 并且我向其中添加了gestureRecognizer 因为我希望它只能在Y轴上拖动并且只能在某些限制下 即160 300 超过300它不能拖动 我以这种方式实现了手势处理 IBAct
  • AVAssetExportSession 为零 iPhone 7 - Plus 模拟器

    AVAssetExportSession在 iPhone 6 及以下版本上运行良好 但在 iPhone 7 iPhone 7 Plus 模拟器上运行不佳 Xcode 8 0 这段代码return nil在exportSession中 当在i
  • insertNewObjectForEntityForName:

    我使用 Xcode xcdatamodel 文件编辑器设置了一个实体 我创建了一个名为 Person 的实体 添加了一些属性 然后生成了一个 m 文件来表示它 一切都很好 现在 当我去编写一行代码时 例如 Person person Per
  • 如何将 ios7 通用应用程序升级到基于 Xcode 6 的通用故事板应用程序?

    我目前有一个基于 xcode 5 ios 7 的通用应用程序 因此有两个故事板 我正在考虑将其更新到 ios 8 有没有办法 最佳方法将两个故事板迁移到通用的单个故事板 我在 xcode 6 中看不到转换选项 None
  • 在 iOS 7 Safari 中,如何区分通过边缘滑动与后退/前进按钮的 popstate 事件?

    在 iOS 7 Safari 中 现在有两种后退 前进导航方式 使用底部的传统后退 前进按钮箭头或从屏幕边缘滑动 我正在使用动画在 ajax 应用程序中的页面之间进行转换 但如果用户通过边缘滑动进行导航 我不想触发该转换 因为这本身就是一个
  • PFQueryTableViewController 错误

    我正在遵循在线教程 使用 Parse 作为后端创建照片共享应用程序 我已经运行了两次教程 两次都从头开始创建应用程序 但在同一位置仍然出现相同的错误 我到处寻找解决方案 但仍然没有运气 我正在使用 PFQueryTableViewContr
  • 什么是 WKWebView 中的 WKErrorDomain 错误 4

    fatal error LPWebView encounters an error Error Domain WKErrorDomain Code 4 A JavaScript exception occurred UserInfo 0x7
  • UIView晃动动画

    我试图在按下按钮时使 UIView 摇动 我正在调整我找到的代码http www cimgf com 2008 02 27 core animation tutorial window shake effect http www cimgf

随机推荐

  • 如何删除 HTML 正文中签名上方自动生成的行?

    When I Display邮件 要添加签名 签名上方添加两行空行 有没有办法删除它们 使邮件看起来更好 而不丢失签名格式 With objOutlookMsg SentOnBehalfOfName email protected cdn
  • getResource 使用 java 1.7 windows 7 在磁盘名称之前放置一个前导 /

    以下在磁盘名称之前给出了一个前导斜杠 我怎样才能避免这种情况 String pngpath getClass getResource resources image png getPath System out println pngpat
  • Restcomm gmlc 配置问题 主要地址不存在本地 SSN

    我在尝试在 Windows Server 2008 R2 上配置 Restcomm gmlc 时遇到问题 我收到这条消息 下图是HLR和Windows服务器的设置 以下是设置 GmlcManagement gmlcproperties xm
  • 如何用 Cocoa 获得准确的分贝值?

    我们正在创建一个应用程序 它可以记录周围的声音 并在声音超过指定分贝时采取必要的措施 为了实现应用程序目标 我们使用 AudioQueueObject h 中的以下方法 void getAudioLevels Float32 levels
  • innerHTML 将 CDATA 转换为注释

    我正在尝试使用 javascript 将一些 HTML 插入到页面中 并且我插入的 HTML 包含 CDATA 块 我发现 在 Firefox 和 Chrome 中 CDATA 正在转换为注释 HTML 不在我的控制之下 所以我很难避免使用
  • 在不知道编码的情况下如何读取编码头?

    如果我正在读取 HTML 文件的 XML 我是否必须读取告诉我编码的标签才能读取该文件 该标签的编码方式与文件的编码方式不一样吗 我很好奇你如何在不知道编码的情况下读取该标签 我意识到这个问题已经解决了 我只是好奇它是如何完成的 Updat
  • 在计算机上找不到 MySQL

    我最近直接从网站 mysql 5 7 9 osx10 10 x86 64 dmg 安装了MySQL 并且在尝试更改给定密码时遇到了很大的困难 返回的错误是 警告 在命令行界面上使用密码可能会导致 没有安全感 mysqladmin 连接到 l
  • Java:从 FTP 服务器访问文件

    我有一个 FTP 服务器 里面有一堆文件夹和文件 我的程序需要访问该服务器 读取所有文件并显示它们的数据 出于开发目的 我一直在使用硬盘驱动器上 src 文件夹中的文件 但现在服务器已启动并运行 我需要将软件连接到它 基本上我想要做的是获取
  • 是否可以获取 Stream 中的下一个元素?

    我正在尝试转换for loop到功能代码 我需要向前看一个值 也需要向后看一个值 是否可以使用流 以下代码是将罗马文本转换为数值 不确定带有两个 三个参数的reduce方法是否可以在这里提供帮助 int previousCharValue
  • 在 Windows 环境中使用 Gnustep 在 Objective-C 中进行编程

    我正在使用 Windows 并且想开始学习如何使用 Objective C 进行编程 我安装了 Gnustep 但无法确定如何构造和构建项目 等效 也找不到 IDE 请参阅Gnustep 入门 https stackoverflow com
  • 选择com的理由

    我想知道为什么人们会选择 Com 作为他的软件开发 技术 我的第一个想法是机器 编程语言的独立性 你的是啥呢 COM 是 Windows 上自动化和 IPC 的事实上的标准 尽管 Net 已经开始转移焦点 因此有些领域您根本没有 或没有 选
  • 在python中查找关键字后的单词[重复]

    这个问题在这里已经有答案了 我想查找出现在关键字 由我指定和搜索 之后的单词并打印出结果 我知道我应该使用正则表达式来做到这一点 我也尝试了一下 如下所示 import re s hi my name is ryan and i am ne
  • 如何从 Django 中的请求对象获取 URI?

    如何从 Django 中的请求对象获取 URI 有 request uri 吗 request META REQUEST URI or request get full path 你往往会产生大量琐碎的问题 你可以在文档 谷歌中轻松找到答案
  • NSTokenField 捕获一些 NSEvents

    我需要为 NSTokenField 和解决方案实现 Command Enter Command O 和 Esc 快捷键https stackoverflow com a 18486965 1067147 https stackoverflo
  • 如何使用 Javascript 访问网络摄像头 [重复]

    这个问题在这里已经有答案了 我用谷歌搜索了很长一段时间关于这个话题 没有任何令人满意的结果 实际上我的基本问题是 有没有可能使用 Javascript 访问网络摄像头 也许用 HTML5
  • jQuery .val() 与 .attr("value")

    我本来以为这两个是一样的 但看起来不是 我一般都用过 obj attr value 使用表单字段 但在我当前正在构建的页面上 obj attr value 不返回我在字段中输入的文本 然而 obj val does 在我构建的另一个页面上
  • 自定义验证错误的自动响应

    在 asp net core 2 1 中 当发生验证错误时 ApiController 将自动响应 400 BadRequest 如何更改 修改发送回客户端的响应 json body 有某种中间件吗 我正在使用 FluentValidati
  • 使用 Celery(RabbitMQ、Django)检索队列长度

    我在 django 项目中使用 Celery 我的代理是 RabbitMQ 我想检索队列的长度 我浏览了 Celery 的代码 但没有找到执行此操作的工具 我在 stackoverflow 上发现了这个问题 从客户端检查 RabbitMQ
  • 在 go 中使用来自网络的原始字节

    抱歉 问题很长 我最近一直在尝试使用 Go 而不是 C 来开发一个游戏服务器模拟器 我正在将其作为一个业余项目进行开发 并质疑我是否以合理的 Go 术语来实现它 正如您所料 服务器通过发送符合特定协议规范的原始数据包 TCP 与一个或多个游
  • Xcode UI 测试 - 使用存储的凭据登录/注销

    我想在我的 iOS 应用程序 Xcode 7 2 1 中运行登录过程的功能 UI 测试 该应用程序的行为是 成功登录后 将存储用户凭据 以便在下次启动时自动登录 不显示登录屏幕 因此 我在登录屏幕中设置了一系列 UI 事件 以使应用程序首次