gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 03:51:09 25 4
gpt4 key购买 nike

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

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

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

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

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

当像这样对登录过程进行 UI 测试时,您会怎么做?

最佳答案

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

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

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

关于ios - Xcode UI 测试 - 使用存储的凭据登录/注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35990478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com