gpt4 book ai didi

ios - 在单元测试中模拟iOS应用程序版本号

转载 作者:行者123 更新时间:2023-11-30 13:21:51 25 4
gpt4 key购买 nike

我已向我的项目添加了功能,该功能可下载 JSON 并将其中的版本号与当前安装的应用版本进行比较,以确定是否应启用某项功能。但是,我现在正在尝试对此进行单元测试,但我不确定如何模拟当前的应用程序版本。

  • 我可以在测试中向 info.plist 中注入(inject)值吗?
  • 我可以在测试中完全模拟 info.plist 吗?

或者我应该:

  • 在我的类中添加一个函数以从 info.plist 文件中检索版本号,然后模拟该函数?

  • 应用启动时,将版本号存储在 NSUserDefaults 中并模拟它?

最佳答案

我肯定会选择检索版本号的函数。这样您就可以从生产代码中的 info.plist 获取它,并在测试中模拟您想要的任何内容。此外,您还可以测试应用程序版本的检索:)

或者更好的是,创建另一个类来获取应用程序编号并将实例注入(inject)到下载 JSON 的类中。然后你就可以随心所欲地 mock 它。

protocol AppVersionProvider {
func getAppVersion() -> String
}

class JSONDownloader {

private let appVersionProvider: AppVersionProvider

public init(appVersionProvider: AppVersionProvider) {
self.appVersionProvider = appVersionProvider
}

public func downloadJSON() {

if appVersionProvider.getAppVersion() != networkingCallResult.appVersion {
...
}
}
}

在那里,您可以使用一些 stub 在测试中模拟 AppVersionProvider 协议(protocol),并使用 info.plist 提供程序进行生产。

关于ios - 在单元测试中模拟iOS应用程序版本号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37704303/

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