首页 文章

Xcode / iOS:单元测试,方案和配置

提问于
浏览
6

我的iOS项目有五个方案:本地开发,集成,QA,演示和 生产环境 . 每种方案都使用不同的配置来控制网络轮询频率,API endpoints ,分析等内容 .

同样,我们有五个相应的目标:本地开发,集成,QA,演示和 生产环境 . 每个目标都有几个用户定义的构建设置,其中包含API密钥,计时的数值等 .

我们的应用程序的 Info.plist 文件使用应用程序变量(如 ${SOME_ENDPOINT_URL} )来绘制相应的用户定义的构建设置 .

要检索变量,我会执行以下操作:

[[[NSBundle mainBundle] infoDictionary] valueForKey:@"Some Endpoint URL"]

这将对应于用户定义的构建设置,如下所示:

"Some Endpoint URL" = ${SOME_ENDPOINT_URL}

我现在正在研究如何适当地配置项目以执行单元和逻辑测试 .

要构建测试以确定环境是否正确配置,我不确定最佳实践是什么 .

  • 为每个环境构建五个额外的特定于测试的目标是否正确?

  • 或者,为每个方案覆盖测试组件的"Run action's arguments"设置是否更好,并提供类似参数的内容来指定我们正在查看的方案?

  • 是否有任何现有参考资料为多个环境的iOS项目配置单元和逻辑测试?该项目的复杂性似乎超出了大多数文档的范围 .

1 回答

  • 1

    以下是我的工作 .

    的Info.plist

    • 创建主Info.plist文件

    • 为每个方案编写一个运行脚本(Shell脚本),通过修改主Info.plist中的设置来生成特定于环境的Info.plist(使用PlistBuddy -c)

    • 将运行脚本添加到Build Phases(上面"Compile Sources")

    .h文件

    • 在.h文件中定义配置设置(例如config.h)
    #if defined (CONFIG_FILE) 
    #import CONFIG_FILE
    #endif
    
    • 在代码中导入config.h

    • 为每个方案使用预处理器宏来选择目标.h文件 .

    -DCONFIG_FILE=local-env-config.h
    

相关问题