gpt4 book ai didi

ios - 将登录详细信息注入(inject) TwitterKit

转载 作者:行者123 更新时间:2023-12-01 18:09:26 25 4
gpt4 key购买 nike

我想向 TwitterKit iOS SDK 注入(inject)或伪造登录。我正在尝试为我的库(这是最重要的 Twitter API 的一种包装器)编写一些单元测试。

不幸的是,Fabric 要求用户设置系统帐户或显示 OAuth 屏幕。有没有办法伪造该登录以使我的测试 API 调用成功?

任何建议将不胜感激。

最佳答案

这取决于您尝试编写的测试类型以及您是否真的在测试期间尝试发出网络请求。

如果您正在编写必须通过登录流程工作的集成测试,那么完成此操作的最简单方法就是将一个帐户添加到 ACAccountStore。通过创建您自己的ACAccountCredential .这种方法的一个缺点是它会在后台进行由系统管理的网络调用,因此无法拦截/模拟它,这可能会使您的测试变得不稳定。一旦您将该帐户添加到商店,每当您尝试通过登录流程时,它就会被拾取。

如果您使用 -[TWTRAPIClient sendTwitterRequest:completion:] 发出网络请求方法,并且您实际上需要在这些调用期间登录,因为您正在尝试访问 Twitter API,您可以将 session 添加到 TWTRSessionStore直接调用[TWTRSessionStore saveSessionWithAuthToken:authTokenSecret:completion:] .同样,此方法将进行难以模拟/拦截的网络调用,但如果您在测试期间发出实际的网络请求,这并不重要。

如果您正在编写不需要发出网络请求的单元测试,但您需要在 TWTRSessionStore 中有一个 session 您可以直接将 session 保存在TWTRSessionStore .您可以调用-[TWTRSessionStore saveSession:withVerification:completion:]使用您创建且未经验证的 session 。请注意,此方法是私有(private)的,如有更改,恕不另行通知。话虽如此,我真的不明白为什么我们会很快改变它,所以它应该对你来说是安全的。

如果这些都不适合您,请让我更具体地知道您要完成的工作,我可以建议其他选择。

关于ios - 将登录详细信息注入(inject) TwitterKit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34767023/

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