gpt4 book ai didi

ios - 在生产应用程序中使用 ProcessInfo.processInfo.environment 有多危险?

转载 作者:搜寻专家 更新时间:2023-11-01 07:13:01 24 4
gpt4 key购买 nike

为了在单元测试中测试一些类,我写了一个模拟的 Coredata 管理器。

我有大约 10 个类从名为 DatabaseManager 的类中获取 NSManagedObjectContext。我已经决定是否运行单元测试,不处理实际的 Coredata NSManagedObjectContext,而是重定向到 Mock Coredata 类以获取 NSManagedObjectContext

func getContext() -> NSManagedObjectContext {
if ProcessInfo.processInfo.environment["XCTestConfigurationFilePath"] == nil
{
return persistentContainer.viewContext
}
else
{
return MockDatabaseController.instance.managedObjectContext()
}
}

这在单元测试和调试中以及通过即席分发时都非常有效。

但我担心的是,如果它无法从 ProcessInfo.processInfo.environment["XCTestConfigurationFilePath"] 中获取正确的值,应用程序可能会毫无用处。

在生产代码中使用 ProcessInfo.processInfo.environment["XCTestConfigurationFilePath"] 的可行性如何?

最佳答案

我会使用 Swift 条件编译以及在构建参数中传递的 -D 标志,以确保代码仅在测试环境中处于事件状态,并且永远没有机会将其投入生产。

关于ios - 在生产应用程序中使用 ProcessInfo.processInfo.environment 有多危险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43923445/

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